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
。