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

4

1 回答 1

3

看看控制台。我确定您会收到类似的错误

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

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

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

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

于 2013-03-24T00:57:17.910 回答