我正在尝试建立一个健壮的
$.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有关。