如何处理getJSON的空返回

Gee*_*Gee 4 javascript jquery

好吧,所以我有一个PHP脚本从DB获取结果,并获得这些结果我使用jQuery脚本通过getJSON拉取结果.它工作得很好,但现在我想做一些事情,如果PHP脚本没有返回任何结果(空).

我试过了:

$.getJSON('path/to/script'), {parameter:parameter}, function(data){
 if (data) {
  alert('Result');
 } else {
  alert('Empty);
 }
});
Run Code Online (Sandbox Code Playgroud)

但这并不好.我尝试了不同的东西,如if(data.length),但仍然没有.我注意到如果没有返回的数据,回调将永远不会触发.所以,如果是这样,我该如何处理空回报?

fav*_*avo 7

您应该检查PHP输出以始终输出一些数据.

在我的代码中,我为输出添加了一个成功标志,如下所示:

$result = array (
 'success' => true,
 'data' => $data
);
echo json_encode($result);
Run Code Online (Sandbox Code Playgroud)

如果我没有输出任何内容,我将false设置为成功,这使得通过data.success在jQuery中进行验证变得容易:

例:

$.getJSON('path/to/script', {parameter:parameter}, function(data){
 if (data.success) {
  alert('Result');
 } else {
  alert('Empty');
 }
});
Run Code Online (Sandbox Code Playgroud)

如果您不想修改输出,可以设置ajaxError来捕获您的阅读问题.

例:

$.ajaxError(function() {
 alert('error triggered');
});
Run Code Online (Sandbox Code Playgroud)

PS:我不知道在这一行结束时是否遗漏了'

alert('Empty);
Run Code Online (Sandbox Code Playgroud)

你原来真的很遗憾,如果是的话,你错过了';-) >>

alert('Empty');
Run Code Online (Sandbox Code Playgroud)