2016-04-08 4 views
0

CORSでAWS APIゲートウェイにカスタムリクエストヘッダを使用することはできませんI ChromeからエンドポイントにPOSTすると、次のエラーが表示されます。は、私が作成したとヘッダ「X-ヘッダー」</p> <pre><code>dev (stage) /echo (resource) POST (method) Method Request - Headers: X-header OPTIONS (method) Method Request - Headers: X-header </code></pre> <p>カスタムHTTPリクエストを含む、以下の構造を持つAWS API Gatewayのリソースを展開している

XMLHttpRequestはhttps://fxxxx.execute-api.us-west-2.amazonaws.com/dev/echoをロードできません。要求ヘッダーフィールドプリフライト応答では、Access-Control-Allow-HeadersではXヘッダーを使用できません。

ChromeはOPTIONSメソッドに対してプリフライトチェックを行っています。私は、リクエストヘッダを見ることができます:

アクセス制御リクエスト・ヘッダー:コンテンツタイプ、受け入れて、X-headerを
アクセス制御リクエスト・メソッド:POST

が、応答ヘッダのみがあります。

アクセス制御は-ヘッダを許可:コンテンツタイプ、X-AMZ-日、認可、X-APIキー、X-AMZ-セキュリティ・トークン
アクセス制御 - 許可します-Methods:POST、オプション
アクセス制御の許可元:*

クロムは、応答アクセス制御要求ヘッダーに論理的に見えるカスタムxヘッダーを含めることを想定しています。これはAPI Gatewayのバグですか?

私が見る唯一の回避策は、カスタムヘッダーを削除し、POST本体のデータを渡すことです。

答えて

4

APIゲートウェイのOPTIONS応答でCORSヘッダーを完全に制御できます。 XヘッダーをAccess-Control-Allow-Headersヘッダーに追加する必要がある場合は、先に進んで追加してください。 OPTIONSメソッドのインテグレーション応答に移動し、そのヘッダーの静的値を変更します。

コンソール機能を使用してCORSを初めて設定した場合(これを実行していない可能性があります)、そこにヘッダーのリストを入力し、その他の高度なヘッダーも表示できます。

今後、この変更を作成時に行うことができます。また、OPTIONSを作成した後でその変更をすぐに更新することもできます。

+0

おかげでジャック。これは意図された動作ですか? CORSとカスタムヘッダーを有効にすると、API GWが残りの作業を行うことになると思いました。 – Jason

+0

また、皆さんがstackoverflowのサポートを提供していることを嬉しく思います! – Jason

+1

はいこれは意図した動作です。私はそれがより自動化できると思うが、我々はそのような「魔法」の変更から一般的に離れようとしている。私はチームと話し合うつもりですが、それは私には意味があるので、私たちは例外を作るかもしれません。 –

0

私は全く同じ問題があります。そして、私はカスタムヘッダーをリソースの下にあるAccess-Control-Allow-Headersのカンマ区切りリストに追加しました。また、リソース - オプション - 統合レスポンス、ヘッダーマッピングの下。

Chromeで同じエラーが発生し、[ネットワーク]でOPTIONS呼び出しを調べても、レスポンスで[ヘッダーの名前がAccess-Control-Allow-Headersに表示されません。

  • ジョン
関連する問題