私は現在、CORS を使用して Angular クライアントからアクセスされる API Gateway と Lambda を介して動作する POST 関数を持っています。あなたの設定がどのようなものかはわかりませんが、見落としていたものが見つかることを願って、関連するすべての設定を共有できます。CORS を有効にすることは、現時点では非常に面倒です (Amazon が修正に取り組んでいることを願っています)。
リソースには 2 つのメソッド (OPTIONS と POST) があり、それぞれに関連する設定を共有します。
POST:
メソッド リクエスト: 特別なことはありません。私のエンドポイントの場合、ルート パラメーターの 1 つに対して [リクエスト パス] の下にオプションがあります。クエリ文字列を使用していないため、URL クエリ文字列は空です。HTTP リクエスト ヘッダーも空です。
統合リクエスト:
統合タイプ: ラムダ マッピング テンプレート: リクエスト本文から適切な値を渡し、パラメータをラムダ関数にルーティングするためのテンプレートを含む 1 つ (アプリケーション/json) があります。
メソッドの応答:
200 ステータス コード フィールドを展開します。「Access-Control-Allow-Origin」のヘッダーを追加し、チェックマークボタンをクリックして保存します。他のステータス コードがある場合は、これを行う必要がある場合があります。
統合応答:
200 応答ステータス フィールドを展開します。[ヘッダー マッピング] で、マッピング値を変更して「*」を含めます。一重引用符が必要です。他の統合応答に対してこれを行う必要がある場合があります。
オプション:
メソッド リクエスト:
POST メソッドのように、特別なことは何もありません。
統合リクエスト:
モック統合に設定しました。Amazon によると、それは問題ではないので、適切なヘッダーで 200 を応答するだけでよいので、モックに設定しました。マッピング テンプレートはありません。
メソッドの応答:
200 ステータス コード フィールドを展開します。次の 3 つの応答ヘッダーを追加し、チェック ボックスを付けて保存します: Access-Control-Allow-Headers、Access-Control-Allow-Methods、Access-Control-Allow-Origin。他のステータス コードはありません。
統合応答:
200 応答ステータス フィールドを展開します。正規表現は空 (デフォルトに設定) で、このメソッドの応答は 200 のみです。ヘッダー マッピングを展開し、ヘッダーを次のマッピング値に設定します。
Access-Control-Allow-Headers: 'Content-Type,X-Amz-Date,Authorization,X-Requested-With'
Access-Control-Allow-Methods: 'GET,POST,OPTIONS'
Access-Control-Allow-Origin: '*'
マッピング テンプレートはありません。
次に、API をデプロイします。うまくいけば、CORS リクエストが許可されるようになりました。あなたとまったく同じ問題に遭遇しましたが、Access-Control-Allow-Headers の X-Requested-With 値が欠落していたことは確かです。