23

私はこのコードを持っています:

$.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID },
    success: function (data) {
        $('#CityID').html(data);
    },
    error: function (ajaxContext) {
        alert(ajaxContext.responseText)
    }
});

ajaxContextと404リターンコードをキャプチャする方法についてはまだ混乱しています。しかし、私は別の質問があります。私は成功と失敗のコーディングについて何かを読んでいて、最近のバージョンのjQueryでエラーを使用しなくなりました。

したがって、doneを使用して失敗するようにコードを変更する必要があります。では、どうすれば404を確認できますか?

4

2 に答える 2

37

次のようにエラー関数を置き換えます...

error:function (xhr, ajaxOptions, thrownError){
    if(xhr.status==404) {
        alert(thrownError);
    }
}
于 2012-06-07T12:04:19.923 に答える
4

404エラーは、errorプロパティに接続された無名関数によって処理されます。URL(つまり、2xx)へのHTTPリクエストが成功した以外の場合は、エラーメソッドがトリガーされます。以下はあなたの目的のために働きます:

error : function(jqXHR, textStatus, errorThrown) { 
    if(jqXHR.status == 404 || errorThrown == 'Not Found') 
    { 
        console.log('There was a 404 error.'); 
    }
}

successそれらがjQueryドキュメントのおよび関数の削除を参照している場合error、それらはのプロパティではなく、jqXHRクラスのそれらを参照しています$.ajax()

于 2012-06-07T12:04:15.993 に答える