我正在尝试建立一个健壮的
$.ajax()
在 jQuery 中调用,但我无法理解如何注意调用是否失败。
我了解如何实现done()和fail()回调,如果调用实际上返回任何内容,它们就会很好地工作。但在我看来,只有在调用本身没有以 HTTP 错误(例如 404 或 502)结束时才调用注册函数。有关我的意思的示例,请参见这个 jsFiddle。
那么我应该使用什么习语来捕捉可能的 HTTP 错误并采取相应的行动呢?
我正在尝试建立一个健壮的
$.ajax()
在 jQuery 中调用,但我无法理解如何注意调用是否失败。
我了解如何实现done()和fail()回调,如果调用实际上返回任何内容,它们就会很好地工作。但在我看来,只有在调用本身没有以 HTTP 错误(例如 404 或 502)结束时才调用注册函数。有关我的意思的示例,请参见这个 jsFiddle。
那么我应该使用什么习语来捕捉可能的 HTTP 错误并采取相应的行动呢?
这可能会帮助你。在编辑你的小提琴的过程中。
 $.ajax({
     statusCode: {
         404: function() {
             alert("page not found");
         }
     }
 });
编辑:我调整了您的.fail()功能以共同处理多个响应状态代码(我认为这应该满足您的需求)。小提琴
.fail(function (response) {
    if ($.inArray(response.status, [404, 302, 502]) != -1) {
        $('pre').append("My callback fired, ");
    } else {
        $('pre').append("oops, error? ");
    }
})
除了@face 的回答,您可能还想切换到$.getJSON. 我对其进行了测试,所有回调都正常工作。我认为这与JSONP有关。