ホームページ >バックエンド開発 >PHPチュートリアル >AngularJS POST リクエストが「無効な HTTP ステータス コード 404」で失敗するのはなぜですか?

AngularJS POST リクエストが「無効な HTTP ステータス コード 404」で失敗するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 08:12:02589ブラウズ

Why Does My AngularJS POST Request Fail with

AngularJS POST の失敗: 無効な HTTP ステータス コードの解決

この記事では、「プリフライトの応答に無効な HTTP が含まれています」という問題に対処しますステータス コード 404" は、AngularJS からサーバーに POST リクエストを行うときに発生します。

提供された AngularJS コードは、サーバーからデータを正常に取得する GET リクエストを設定します。ただし、POST リクエストでは、ブラウザによって送信されたプリフライト OPTIONS リクエストが原因で、前述のエラーが発生します。 CORS (Cross-Origin Resource Sharing) ポリシーでは、ブラウザーが実際のリクエストを行う前にプリフライト OPTIONS リクエストを送信することが義務付けられています。

SlimPHP では、サーバーは必要なヘッダーを設定することで CORS を処理します。ただし、リクエスト/レスポンス ヘッダーを検査すると、サーバーがプリフライト OPTIONS リクエストに対して間違った 404 ステータス コードを返していることがわかります。

この問題を解決するには、クライアント側の AngularJS コードを変更して、プリフライト OPTIONS リクエスト。これは、

<code class="javascript">app.config(function ($httpProvider) {
  $httpProvider.defaults.headers.common = {};
  $httpProvider.defaults.headers.post = {};
  $httpProvider.defaults.headers.put = {};
  $httpProvider.defaults.headers.patch = {};
});</code>

を使用してデフォルトのヘッダーをリセットすることで実現できます。これらのヘッダーをリセットすると、ブラウザーはプリフライト OPTIONS リクエストを送信しなくなります。代わりに、プリフライト リクエストの問題のある 404 ステータス コードをバイパスして、実際の POST リクエストを直接送信します。

このソリューションは、CORS ポリシーを理解し、プリフライト リクエストを正しく処理することの重要性を強調しています。 CORS のクライアント側とサーバー側の両方の側面に対処することで、開発者はクロスオリジン リクエストを確実に成功させ、「無効な HTTP ステータス コード 404」エラーを排除できます。

以上がAngularJS POST リクエストが「無効な HTTP ステータス コード 404」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。