如何判断jQuery.ajax()调用期间是否发生错误?

时间:2013-07-02 16:26:35

标签: jquery ajax http-error

我正在努力构建一个强大的

$.ajax()

调用jQuery,但我无法理解如何注意调用是否失败。

我了解如何实现 done() fail()回调,如果调用实际返回任何内容,它们的工作效果非常好。但在我看来,只有在调用本身没有以404或502等HTTP错误结束时才会调用已注册的函数。See this jsFiddle for an example of what I mean.

那么我应该用什么成语来捕捉可能的HTTP错误并采取相应的行动呢?

2 个答案:

答案 0 :(得分:1)

这可能会对你有所帮助。正在编辑你的小提琴。

 $.ajax({
     statusCode: {
         404: function() {
             alert("page not found");
         }
     }
 });

编辑:我调整了您的.fail()函数来集体处理多个响应状态代码(我认为这应该可以满足您的需求)。 FIDDLE

.fail(function (response) {
    if ($.inArray(response.status, [404, 302, 502]) != -1) {
        $('pre').append("My callback fired, ");
    } else {
        $('pre').append("oops, error? ");
    }
})

答案 1 :(得分:0)

除了@face的答案,您可能想切换到$.getJSON。我测试了它,所有的回调都正常工作。我认为这与JSONP有关。