APIGatewayに設定したGETエンドポイントを呼び出すSPA(CloundFrontの前にあります)があります。スパのドメインはAPI Gatewayのドメインとは異なります。私のSPAがリソース上でGETをしようとすると、以下のような同じOriginのポリシー例外が発生するAWS API GatewayとCloudFrontを使用する場合、同じOrigin Policy例外を回避するには
"No Access-Control-Allow-Origin header is present on requested resource"
これはAPI Gatewayでの設定です。私は順番に(私のサービスにプロキシ)私のバックエンドサービスを呼び出してリソースを取得する必要があり、次の
Access-Control-Allow-Methods: 'GET, OPTIONS'
Access-Control-Allow-Headers: 'Content-Type,X-Api-Key,X-Requested-With'
Access-Control-Origin: '*'
を返すオプションのリソースを持っています。私は
Access-Control-Allow-Headers
Access-Control-Allow-Methods
Access-Control-Allow-Origin
ブラウザのオプションは、すべての必要なアクセスコントロールスタッフと、200でリターンを呼び出す応答の一部として、これらのヘッダを返すために、セットアップリソースを持っています。しかし、ブラウザがGET呼び出しを行うと、私は同じオリジン・ポリシー例外を受け取ります。どんなアイデアがここで起こっている?それは私のGETレスポンスがAccess-Control-Originの値を明示的に設定していないためですか? '*':
おかげ ケイ
これをAPIゲートウェイに追加するにはどうすればよいですか?私のGETリソースは私のバックエンドへのリクエストだけで、私のバックエンドからのレスポンスをそのまま返します。 APIゲートウェイの発信応答ヘッダーを変更する方法がありません –
あなたの答えは、*の値を持つAccess-Control-Allow-Originヘッダーを追加する必要があるという点で正しいです。 AWS API Gatewayを使用しているときに同じ問題に遭遇した他の人のために - API Gatewayを使用してバックエンドサービスにプロキシする場合、APIから返されるレスポンスを変更することはできません。 「Integrations Responses」はグレー表示されます。一方、プロキシを選択しない場合は、APIからの応答を変更することができます –