ホームページ > ウェブフロントエンド > jsチュートリアル > クロスオリジンリクエストの「リクエストヘッダーフィールド Access-Control-Allow-Headers は Access-Control-Allow-Headers によって許可されていません」エラーを修正する方法

クロスオリジンリクエストの「リクエストヘッダーフィールド Access-Control-Allow-Headers は Access-Control-Allow-Headers によって許可されていません」エラーを修正する方法

Susan Sarandon
リリース: 2024-10-29 06:32:02
オリジナル
961 人が閲覧しました

How to Fix the

「リクエスト ヘッダー フィールド Access-Control-Allow-Headers は Access-Control-Allow-Headers によって許可されていません」エラーを解決します

最初のエラーを修正するために、さまざまなメソッドとヘッダーを許可するヘッダーがリクエストに追加されました。ただし、これにより新しいエラーが発生しました: 「リクエスト ヘッダー フィールド Access-Control-Allow-Origin は、Access-Control-Allow-Headers によって許可されていません。」

CORS リクエストとプリフライト リクエストについて

この問題は、ブラウザーが特定のコンテンツ タイプのクロスオリジン リクエストに対してプリフライト OPTIONS リクエストを送信するという事実に起因します。デフォルトでは、Angular は application/json コンテンツ タイプでデータを送信し、これによりこのプリフライト リクエストがトリガーされます。

サーバーの応答とヘッダー

サーバーは明示的にアクセスを許可する必要があります。エラーを防ぐために、応答に Control-Allow-Headers ヘッダーを追加します。それ以外の場合、ブラウザは応答をヘッダーを許可しないものとして解釈します。

解決策: コンテンツ タイプまたはサーバー応答の変更

問題を解決するには、クライアントまたはサーバーの応答を変更します。サーバー構成:

1.クライアント側 (Angular):

デフォルトの Angular コンテンツ タイプを application/x-www-form-urlencoded に上書きします。これにより、プリフライト リクエストはトリガーされません:

$http.post(url, data, {
    headers : {
        'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
    }
});
ログイン後にコピー

2.サーバー側:

または、サーバー上で Access-Control-Allow-Headers ヘッダーを許可します。次の応答ヘッダーを設定する必要があります:

  • Access-Control-Allow-Origin: * または特定のオリジン (例: https://example.com)
  • Access-Control -Allow-Methods: GET、POST、PUT、DELETE、OPTIONS
  • Access-Control-Allow-Headers: クライアントがリクエストで送信するすべてのヘッダー (Content-Type、Authorization など)

以上がクロスオリジンリクエストの「リクエストヘッダーフィールド Access-Control-Allow-Headers は Access-Control-Allow-Headers によって許可されていません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート