から悪い状態コードのためのクリーンハンドリング私は非常に単純なAjaxのリクエストがありますjQueryの:AJAX
$.get(url, data)
.done(function() { })
.fail(function() { })
url
にエラーがある場合、それは例えば「500」のようなステータスコードを返します。どうやら、jQueryは.fail
ではなく.done
を実行するので、jqxhr
オブジェクトの約束をこの時点で考えています。私の質問は2倍です:
デフォルトでは、.fail
がajaxに対してトリガーされ、このデフォルトを変更する方法はありますか?
第二に、不正な要求のための特別な処理を持っているための唯一の方法のようなもののようだ:「?悪い」と考えられる回答を見つけて対処するより良い方法はあり
.done(function (msg, tm, jqxhr) {
if (jqxhr.status < 200 || jqxhr.status >= 300) performFailure();
});
jQueryの.get()ドキュメントから
'.fail'と' .error'はjqxhrオブジェクトと同じメソッドで、私はそれを使用しています。ステータスコードに関係なく '.done'が実行されます(' .success'と同じです)。これは私にとっては意図的なようです。ところで、私はjQuery 1.7を使用しています。 –
.errorと.failの使用を提案していませんでした。私はエラーコードが黙って失敗することを指摘していました。私の答えにイタリック体のテキストを見てください。 error/failブロックに入るには、スクリプトコール.ajaxError()が必要です。 – veeTrain
が間違っています –