我正在努力构建一个强大的
$.ajax()
调用jQuery,但我无法理解如何注意调用是否失败。
我了解如何实现 done()和 fail()回调,如果调用实际返回任何内容,它们的工作效果非常好。但在我看来,只有在调用本身没有以404或502等HTTP错误结束时才会调用已注册的函数。See this jsFiddle for an example of what I mean.
那么我应该用什么成语来捕捉可能的HTTP错误并采取相应的行动呢?
答案 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有关。