2017-11-15 8 views
1

$ http.get()を使用して、テスト中にCORSを有効にしている限り、APIリクエストをコミットします。もちろん、それは単なるバンダイです。

私はこの記事が見つかりました: Angular $http.get: How to catch all the errors?

をそして、私のコードは、その後に設定している()(キャッチ)とキャッチコードが実行される一方で、予想通り、エラーがまだスローされます。

XMLHttpRequestはアクセス制御のチェックのために 'ここにURL'を読み込むことができません。

私は手動でCORSを開発用に無効にしても、catch()にもかかわらず401エラーが表示されます。

コンソールの古い「赤いテキスト」エラーを防ぎ、ユーザーにアラートを出して処理するだけです。

+0

ほとんどのブラウザの開発ツールは、あなたがそれらを処理するかどうかに関係なく、悪いAJAX応答を報告します。あなたはそれについて何もできません。 – SLaks

+0

apiでcorsを有効にする必要があります –

答えて

0

ブラウザでhttpリクエストを送信すると、まずプリフライトと呼ばれるOPTIONSリクエストが送信されます。プリフライト要求の応答にAccess-Control-Allow-Originヘッダーが含まれていない場合、ブラウザは要求をブロックします。

このプリフライトリクエストはJavascriptでは透過的です。したがって、すべてのAjax呼び出しで、宛先がクロスドメインの場合、ブラウザは2つの要求を送信します。

エラーをキャッチしても、プリフライト要求が失敗した場合、ブラウザはコンソールでネットワークエラーを報告します。

+0

これを避ける方法はありますか? –

+0

ブラウザにネットワークエラーがコンソールに登録されないようにしますか? –

関連する問題