ホームページ >バックエンド開発 >PHPチュートリアル >AngularJS POST リクエストがプリフライト リクエストの 404 で失敗するのはなぜですか?
AngularJS POST リクエストの失敗: プリフライト リクエストの HTTP 404
AngularJS では、POST リクエスト中に未解決の「XMLHttpRequest を読み込めません」エラーが発生する可能性があります。これは、実際の POST に先立つプリフライト リクエストの無効な HTTP ステータス コード (404) が原因で発生します。プリフライト要求は、要求された操作が許可されているかどうかを確認し、クロスオリジン リソース共有 (CORS) ポリシーへの準拠を確認することを目的としています。
根本原因: CORS ヘッダーが欠落しています
エラーの根本的な原因は、サーバーがプリフライト OPTIONS リクエストを適切に処理できないことにあります。クロスオリジンリクエストを有効にするには、サーバーは適切な CORS ヘッダーを設定する必要があります。
解決策: CORS ヘッダーをサーバー側で追加する
SlimPHP では、CORS ヘッダーを応答オブジェクト:
<code class="php">$app->response()->headers->set('Access-Control-Allow-Headers', 'Content-Type'); $app->response()->headers->set('Content-Type', 'application/json'); $app->response()->headers->set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); $app->response()->headers->set('Access-Control-Allow-Origin', '*');</code>
解決策: クライアント側でのプリフライト リクエストの無効化
または、AngularJS の共通ヘッダーをリセットすることで、クライアント側でプリフライト リクエストを無効にすることもできます。 :
<code class="js">app.config(function ($httpProvider) { $httpProvider.defaults.headers.common = {}; $httpProvider.defaults.headers.post = {}; $httpProvider.defaults.headers.put = {}; $httpProvider.defaults.headers.patch = {}; });</code>
追加の考慮事項
機密データを含む POST リクエストの場合、JSON Web Token (JWT) などの認証および認可メカニズムの実装が必要になる場合があります。接続を確保します。セキュリティ違反を防ぐには、CORS を徹底的に理解し、OPTIONS リクエストを適切に処理することが重要です。
以上がAngularJS POST リクエストがプリフライト リクエストの 404 で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。