Ajax error
函数中的必需参数为jqXHR, exception
,您可以如下使用它:
$.ajax({
url: 'some_unknown_page.html',
success: function (response) {
$('#post').html(response.responseText);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
},
});
演示场
参量
jqXHR:
它实际上是一个错误对象,看起来像这样
您也可以在console.log
内部浏览器控制台中使用以下error
功能查看此内容:
error: function (jqXHR, exception) {
console.log(jqXHR);
// Your error handling logic here..
}
我们正在使用status
该对象的属性来获取错误代码,例如,如果我们获取status = 404,则意味着找不到请求的页面。它根本不存在。根据状态代码,我们可以将用户重定向到登录页面或我们的业务逻辑要求。
例外:
这是显示异常类型的字符串变量。因此,如果我们遇到404错误,则exception
文本将仅仅是“错误”。同样,我们可能会得到“超时”,“中止”作为其他异常文本。
取消通知:该jqXHR.success()
,jqXHR.error()
和jqXHR.complete()
回调弃用的jQuery 1.8。要准备的代码为他们的最终消除,使用jqXHR.done()
,jqXHR.fail()
和jqXHR.always()
来代替。
因此,如果您使用的是jQuery 1.8或更高版本,我们将需要更新成功和错误函数逻辑,例如:
// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax("some_unknown_page.html")
.done(function (response) {
// success logic here
$('#post').html(response.responseText);
})
.fail(function (jqXHR, exception) {
// Our error logic here
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
})
.always(function () {
alert("complete");
});
希望能帮助到你!
dataType
不是datatype
。