CORS のトラブルシューティング
CORS 設定を行ったバケットにアクセス中に予期しない動作が発生した場合は、以下のステップを試してトラブルシューティングを行います。
-
バケットに CORS 設定が行われていることを確認します。
CORS 設定を行うと、コンソールでは、[Properties] (プロパティ) バケットの [Permissions] (アクセス権限) セクションに [Edit CORS Configuration] (CORS 設定の編集) リンクが表示されます。
-
任意のツールを使用してリクエストとレスポンスの全体を取り込みます。Amazon S3 が受信するすべてのリクエストには、リクエストのデータと一致する、以下のような CORS ルールが存在している必要があります。
-
リクエストに Origin ヘッダーがあること。
ヘッダーがない場合は、Amazon S3 でクロスオリジンリクエストとして扱われず、CORS レスポンスヘッダーをレスポンスに入れて送信されません。
-
リクエストの Origin ヘッダーが指定された
AllowedOrigin
のCORSRule
エレメントの少なくとも 1 つと一致していること。リクエストの Origin ヘッダーのスキーム、ホスト、およびポートの値が
AllowedOrigin
のCORSRule
エレメントと一致していること。例えば、オリジンCORSRule
を許可するようにhttp://www.example.com
を設定した場合は、リクエスト内にhttps://www.example.com
やhttp://www.example.com:80
のオリジンがあると、設定で許可されているオリジンと一致しなくなります。 -
リクエスト内のメソッド (または、プリフライトリクエストの場合は
Access-Control-Request-Method
に指定したメソッド) が、同じAllowedMethod
内のCORSRule
エレメントの 1 つであること。 -
プリフライトリクエストの場合、それに
Access-Control-Request-Headers
ヘッダーが含まれているときに、CORSRule
にAllowedHeader
ヘッダーのすべての値に対するAccess-Control-Request-Headers
エントリが含まれていること。
-