Ajax成功函数中的问题

时间:2013-03-24 00:53:51

标签: javascript jquery ajax

$.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!="")

,则可以正常工作

1 个答案:

答案 0 :(得分:3)

Have a look at the console.我确定你会收到类似

的错误
  

无法读取未定义的属性“数据”。

如果数组为空,result[0]将返回undefined,后续属性访问将导致运行时错误,从而立即终止脚本。首先检查数组是否为空:

if (result.length > 0 && result[0].data.NameB == "")

您可能还必须测试result[0].data的存在,具体取决于数据。