javascript - Ajax成功函数中的问题

标签 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!="")

最佳答案

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/

相关文章:

javascript - JS/CSS : How to change z-index value after scrolling down past 1200 pixels (in height)?

PHP 从 HTML5 获取数据属性

javascript - 使用 AJAX 的动态下拉菜单

javascript - 使用 jQuery 插件 Quicksand 获取 "rawDestElement is undefined"

javascript - 如何从网页 (HTML/Javascript) 向 Java 应用程序发送简单消息?

javascript - jQuery 每个函数类切换

javascript - 如何在 JavaScript 中通过这个谜题?

javascript - 使用 Node.js 进行异步字符串连接

javascript - 如何使用 jQuery 获取每个选择器的兄弟

jquery - SimpleSlider,支持最后一个 slider 值回调