1

我正在尝试建立一个健壮的

$.ajax()

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

我了解如何实现done()fail()回调,如果调用实际上返回任何内容,它们就会很好地工作。但在我看来,只有在调用本身没有以 HTTP 错误(例如 404 或 502)结束时才调用注册函数。有关我的意思的示例,请参见这个 jsFiddle。

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

4

2 回答 2

1

这可能会帮助你。在编辑你的小提琴的过程中。

 $.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? ");
    }
})
于 2013-07-02T16:35:16.877 回答
0

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

于 2013-07-02T16:39:51.517 回答