我正在构建一个 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/