web-dev-qa-db-ja.com

未処理のjQueryを防止AJAXエラー

サーバーのデータまたはエラーを受信する方法を知っています。多くの方法があります。例えば:

$.ajax({
    type: "get",
    url: "/widgets/",
    success: function (data, text) {
        console.log('this is a data');
    },
    error: function (request, status, error) {
        console.log('this is an error');
    }
});

この画像をご覧ください:

result in chrome developer console

私にはエラー関数があり、そこで必要なことをします。最初の行のエラーを防ぐにはどうすればよいですか。 4xxおよび5xxエラーをテストしましたが、違いはありません。開発者コンソールが非表示の場合、エンドユーザーにはこのエラーは表示されません。

APIを設計するために必要です。これがエラーまたは成功の結果であることを示す追加の引数を使用して、サーバーから200応答を送信できることを知っています。

しかし、4xxまたは5xxの応答を送信できる場合は、追加の引数は必要ありません。この方法には、いくつかの追加の利点があります。たとえば、追加の引数を気にすることなく、クライアント側モデルに成功結果を適用できます。

ありがとうございました

35
iman

私の知る限り、エラーステータスコード(4xx、5xx)を返すときに、赤いものを消すことはできません。これらはブラウザによって使用され、予期したとおりに機能しなかった可能性があることを示します。それでも、これらは単なる装飾です。4xxと5xxのステータスコードは完全に有効であるため、それらを削除する理由はわかりません。

あなたが言ったように、他の選択肢は「これがエラーまたは成功の結果であることを示す追加の引数を使用してサーバーから200応答を送信することです」 。

私は確かに4xxと5xxコードを使用することをお勧めします(それはそれらが設計されたものです)、開発者コンソール(別名赤いもの)でのブラウザーのヘッドアップ警告について心配するのをやめます。

他の種類のリソース(画像、ファイルなど)をフェッチするときの同様のエラーに関する this および this 質問も参照してください。表示されるエラーは、実際には同じ性質のものです。

15
gkalpak