Обязательными параметрами в errorфункции Ajax являются, 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);
},
});
ДЕМО FIDDLE
параметры
jqXHR:
На самом деле это объект ошибки, который выглядит так

Вы также можете просмотреть это в своей собственной консоли браузера, используя console.logвнутри errorфункции, например:
error: function (jqXHR, exception) {
console.log(jqXHR);
// Your error handling logic here..
}
Мы используем 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.