1. ホーム
  2. jquery

[解決済み] jQuery: HTTPステータスコードを$.ajax.errorメソッドから取得する方法は?

2023-03-28 15:37:03

質問

jQueryを使ってAJAXリクエストをしています。私はHTTPステータスコードが400エラーまたは500エラーであるかどうかにかかわらず、異なるアクションを実行したい。どのようにこれを達成することができますか?

$.ajax({
    type: 'POST',
    url: '/controller/action',
    data: $form.serialize(),
    success: function(data){
        alert('horray! 200 status code!');
    },
    error: function(data){
        //get the status code
        if (code == 400) {
            alert('400 status code! user error');
        }
        if (code == 500) {
            alert('500 status code! server error');
        }
    },
});

更新しました。

GeorgeCummins は、レスポンス ボディで動作するのは奇妙に見えると言及しました。これは、私がこの種のことを行おうと試みた初めてのことです。私のやり方はベストプラクティスではないのでしょうか?何かお勧めはありますか?この件に関しては、StackOverflow の別の質問をここに作成しました。 ユーザー/フォーム検証エラーが発生した場合、AJAXリクエストにどのような応答/ステータスコードを送信する必要がありますか?

どのように解決するのですか?

jQuery 1.5を使用している場合は、以下のようになります。 statusCode は動作します。

jQuery 1.4を使用している場合は、こちらをお試しください。

error: function(jqXHR, textStatus, errorThrown) {
    alert(jqXHR.status);
    alert(textStatus);
    alert(errorThrown);
}

最初のアラートでステータスコードが表示されるはずです。