- 新しい順
- 投票が多い順
- コメントが多い順
APIGatewayのカスタムドメインを使用する際のCORS設定について、以下の点を確認し、対応することで問題が解決する可能性があります:
-
APIGatewayのCORS設定: カスタムドメインを使用する場合でも、APIGatewayのリソースレベルでCORS設定が必要です。各リソースのOPTIONSメソッドで、以下のヘッダーが正しく設定されていることを確認してください:
- Access-Control-Allow-Origin
- Access-Control-Allow-Headers
- Access-Control-Allow-Methods
-
カスタムドメインのOrigin設定: クライアントサイドのコード(Jsファイル)で、APIリクエストを送信する際のURLをカスタムドメインに更新したことは正しい対応です。同時に、APIGatewayのCORS設定の'Access-Control-Allow-Origin'ヘッダーにも、このカスタムドメインを含める必要があります。
-
Cognitoの設定: Cognito User PoolsのApp client設定で、カスタムドメインをCallback URLとSign out URLに追加してください。
-
Lambda関数の対応: Lambda関数内でレスポンスヘッダーを設定している場合、'Access-Control-Allow-Origin'ヘッダーの値をカスタムドメインに更新してください。
-
CloudFrontの設定: CloudFrontディストリビューションのBehaviors設定で、APIGatewayへのリクエストに対して適切なOrigin設定がされていることを確認してください。また、必要に応じてWhitelisted Headersを設定し、CORSヘッダーが正しく転送されるようにしてください。
-
ブラウザのコンソール確認: 開発者ツールのコンソールでCORSエラーの詳細を確認し、具体的にどのヘッダーや設定が問題になっているかを特定してください。
これらの点を順に確認し、必要な修正を行うことで、APIGatewayのカスタムドメインを使用した際のCORS問題が解決できる可能性が高いです。特に、Origin設定の一貫性とヘッダーの正確な設定が重要です。
Sources
Test CORS for an API Gateway API - Amazon API Gateway
S3のCORS設定はどのようになっていますでしょうか?
以下のブログで紹介されているような観点で確認してみるとよいと思います。
https://qiita.com/ritya/items/d19f9379bc96fb63ad34
カスタムドメインを設定した際にAPI GateWay側でマッピングを設定した後にcurlコマンドなどで正常にAPIを実行できるか確認してみてください。
S3のjsスクリプトから実行しているAPIのパスなどが一致しているかも確認するとよいと思います。
https://qiita.com/TAKAHASHI_AIRI/items/7532073ffe17c6ab6150#%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%A8api%E3%82%92%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0
https://dev.classmethod.jp/articles/api-gateway-with-custom-domain/#toc-api1
