1. ホーム
  2. angularjs

[解決済み] angularのpostリクエストでpreflightのレスポンスがHTTPステータスコード403で不正になる。

2022-01-29 23:37:43

質問

私は、私のローカルホストで、いくつかのAPIのURLを呼び出す$httpリクエストを持っています。私は、呼び出しを実行する際にエラーが発生します。

Response for preflight has invalid HTTP status code 403

この問題を解決するために、angularを使用して何かすることはできますか?クロスオリジンリクエストを許可するために、クロームのCROSプラグインを使用しています。

$http({
                method: 'POST',
                url: url,
                data:data1,
                headers: {
                    'Access-Control-Allow-Origin': '*',                 
                }
            })

解決方法は?

さて、ここで私がこの問題を解決した方法を説明します。それはすべてCORSポリシーに関係しています。POSTリクエストの前に、ChromeはプリフライトOPTIONSリクエストを行い、実際のリクエストの前にサーバーによって処理され承認される必要がありました。これは、私がこのような単純なサーバーに望んでいたことではありません。したがって、クライアント側でヘッダをリセットすることで、プリフライトを防ぐことができます。

app.config(function ($httpProvider) {
  $httpProvider.defaults.headers.common = {};
  $httpProvider.defaults.headers.post = {};
  $httpProvider.defaults.headers.put = {};
  $httpProvider.defaults.headers.patch = {};
});

これで、ブラウザは直接POSTを送信するようになります。これで多くの人が助かるといいのですが...。私の本当の問題は、CORSを十分に理解していなかったことです。

素晴らしい説明へのリンクです。 http://www.html5rocks.com/en/tutorials/cors/

道を示してくれたこの答えに拍手。 AngularJSのPOSTが失敗する。プリフライトのレスポンスに無効なHTTPステータスコード404がある