javascript - 意外的 JSON 行为

标签 javascript php json wordpress

我正在构建一个 WordPress 插件。 PHP 脚本发送 JSON,javascript 接收它。有时,js 会收到一个空的 JSON,即使我确定它应该接收数据。如果我放置一个空的 echo (echo ' ';),它可以解决我的问题并正确接收数据。 接收者:

jQuery.ajax({
        url: url + "get_bookings.php",
        method: "POST",
        data: {
            week: t,
            year: e
        }
    }).done(function(w) {
         w = JSON.parse(w);
        fetchTableData(w)
    })

发件人:

echo ' ';
.
. // Code here.
echo json_encode( $query );

我找不到为什么会发生这种情况。有时没有空 echo 也能正常工作。

编辑:感谢您的回答,退出没有帮助。 我检查了网络面板,它请求 get_bookings.php 两次。我在 URL 末尾加了一个斜杠,效果很好。

url: url + "get_bookings.php/",

最佳答案

首先,删除这一行:

echo ' ';

我建议首先通过测试 $query 的结果值来调试 PHP 脚本:

print_r($query);

如果值间歇性地结果为空字符串,请确保对此进行测试并在必要时返回空 JSON 对象。

if (empty($query)) {
  $query = (Object)[];
}
echo json_encode($query);

关于javascript - 意外的 JSON 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54646885/

相关文章:

javascript - 如果数组项包含字符串但不包含其他字符串,则删除字符串

javascript - 我将如何在 Vue.js 中创建启动画面?

javascript - 如何通过点击td来更改td颜色(如战舰游戏)?

c# - ScriptIgnore 元数据

javascript - 为 Restful Web 服务构建 JSON 配置的正确方法

Javascript 总工资和净工资计算器

javascript - 基本的 recurly.js 测试

php - MySQL 和 PHP : Unkown Column in WHERE clause, 但列确实存在

jquery - 将 JSON 转换为 TR 和 TD

php - 开源聊天应用程序?