CORS
CORS (オリジン間リソース共有、 Cross-Origin Resource Sharing) は、 HTTP ヘッダーの転送で構成されるシステムであり、ブラウザーがオリジンをまたいだリクエストのレスポンスに、フロントエンドの JavaScript コードがアクセスすることをブロックするかどうかを決めるものです。
同一オリジンセキュリティポリシーは、既定でリソースへのオリジン間のアクセスを禁止しています。しかし、 CORS はウェブサーバーに、リソースへのオリジンをまたいだアクセスを許可すると言うことができるようにします。
理解を深める
一般知識
- MDN 上の オリジン間リソース共有 (CORS)
- Wikipedia 上の Cross-origin resource sharing
CORS のヘッダー
Access-Control-Allow-Origin
- レスポンスを共有してよいかどうかを示します。
Access-Control-Allow-Credentials
- 認証情報フラグが true の場合、リクエストに対するレスポンスを公開してよいかどうかを示します。
Access-Control-Allow-Headers
- プリフライトリクエストへのレスポンスで使用され、実際のリクエストを行う際に使用してよい HTTP ヘッダーを示します。
Access-Control-Allow-Methods
- プリフライトリクエストへのレスポンスで、リソースにアクセスするときに使用してよいメソッドを指定します。
Access-Control-Expose-Headers
- レスポンスの一部としてどのヘッダーを公開してよいかを、ヘッダー名を列挙することで示します。
Access-Control-Max-Age
- プリフライトリクエストの結果をキャッシュできる時間を示します。
Access-Control-Request-Headers
- プリフライトリクエストを発行する際に、実際のリクエストを行う際に使用される HTTP ヘッダーをサーバーに知らせるために使用します。
Access-Control-Request-Method
- プリフライトリクエストを発行する際に、実際のリクエストを行う際に使用される HTTP メソッドをサーバーに知らせるために使用します。
Origin
- どのオリジンからアクセスしているかを示します。