ホームページ >バックエンド開発 >PHPチュートリアル >AngularJS POST リクエストが「無効な HTTP ステータス コード 404」で失敗するのはなぜですか?
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 サイトの他の関連記事を参照してください。