2017-10-19 9 views
0

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の値を明示的に設定していないためですか? '*':

おかげ ケイ

答えて

0

私はあなたが必要とする以下の

ヘッダを返すオプションリソースへのアクセス・コントロール - は -Originを許可されています。

ただし、単純なGETはフライト前OPTIONS *を実行しないため、返品する必要があります。

+0

これをAPIゲートウェイに追加するにはどうすればよいですか?私のGETリソースは私のバックエンドへのリクエストだけで、私のバックエンドからのレスポンスをそのまま返します。 APIゲートウェイの発信応答ヘッダーを変更する方法がありません –

+0

あなたの答えは、*の値を持つAccess-Control-Allow-Originヘッダーを追加する必要があるという点で正しいです。 AWS API Gatewayを使用しているときに同じ問題に遭遇した他の人のために - API Gatewayを使用してバックエンドサービスにプロキシする場合、APIから返されるレスポンスを変更することはできません。 「Integrations Responses」はグレー表示されます。一方、プロキシを選択しない場合は、APIからの応答を変更することができます –

関連する問題