$.ajax({
type: "GET",
dataType: "jsonp",
jsonp: "jsoncallback",
data: {
//some data
},
url: "http://mydomain.com/checkRequest.php?jsoncallback=?",
success: function (result) {
if (result[0].data.NameB == "") {
alert("123");
} else {
alert("456");
}
},
error: function (jqXHR, textStatus) {
alert("Request failed: " + textStatus);
}
}); // end of ajax
我有上面的代码,当且仅当有东西返回时它才能成功。
但是,如果 PHP 不返回任何内容,则字符串将变为:jQuery191025216468679718673_1364086240540([]);
我预计它会转到其他部分,从而发出 456 警报。但是,它跳过了整个成功功能。那么,我该如何修改编码呢?
如果我将 if 子句更改为 if (result!="")
最佳答案
Have a look at the console.我确信您会收到类似的错误
Cannot read property "data" of undefined.
如果数组为空,result[0]
将返回 undefined
,后续的属性访问将导致运行时错误,从而立即终止脚本。首先检查数组是否为空:
if (result.length > 0 && result[0].data.NameB == "")
您可能还需要测试 result[0].data
是否存在,具体取决于数据。
关于javascript - Ajax成功函数中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15593920/