我尝试在通用$(document).ajaxError()
方法中获取HTTP错误代码。我怎么读出来的?我找到了这个jQuery: How to get the HTTP status code from within the $.ajax.error method?,但我没有设法让它适应我的功能。
JQuery版本是2.1.3。
$(document).ajaxError(function (jqXHR, textStatus, errorThrown) {
if (jqXHR.statusCode != "500") {
$("#global-error-wrapper").show();
$(".global-error-message-inner-text").text(trans("noconnectionerror"));
}
});
答案 0 :(得分:1)
您使用的ajaxError似乎与您发布的链接中的设置中定义的ajax事件错误处理程序略有不同。对于ajaxError()
,看起来回调中的第一个参数是事件,第二个参数是您想要的jqXHR对象。此外,它应该是jqXHR.status
而不是statusCode
请尝试以下
$(document).ajaxError(function (event, jqXHR, settings, thrownError) {
if (jqXHR.status != 500) {
$("#global-error-wrapper").show();
$(".global-error-message-inner-text").text(trans("noconnectionerror"));
}
});
答案 1 :(得分:-1)
statusCode
方法中jqXHR
对象上的ajaxError
对象是指您在构建ajax
调用时可以创建的对象映射。如果您对所期望的状态代码有所了解,可以构建此映射并将其与ajax
调用一起发送,这可以帮助您确定返回的状态代码:
var statusCodeMapping = {
404: function() {
$notFound = true;
}
}
$.ajax({
statusCode: statusCodeMapping
});
然后,您可以检查$notFound
对象,看看这是否是您Ajax
电话中返回的状态代码:
$(document).ajaxError(function (jqXHR, textStatus, errorThrown) {
if ($notFound) {
$("#global-error-wrapper").show();
$(".global-error-message-inner-text").text(trans("noconnectionerror"));
}
});
$notFound
对象应该是脚本的全局