CORS(オリジン間リソース共有)
フロントエンドをCDN(Content Delivery Network)から配信するなどの理由で、フロントエンドとバックエンドで異なるドメイン名を持つ場合があります。
ドメイン名が異なるとブラウザの同一オリジンポリシーによりアクセスが制限されてしまうため、CORSを使用します。
CORSに関連するHTTPレスポンスヘッダの設定例は次の通りです。
HTTPレスポンスヘッダ | 設定する値 | 備考 |
---|---|---|
Access-Control-Allow-Origin |
フロントエンドのURL | |
Access-Control-Allow-Methods |
GET 、POST 、PUT 、DELETE 、PATCH 、OPTIONS |
プリフライトリクエストのためにOPTIONS を許可します |
Access-Control-Allow-Headers |
Content-Type |
アプリケーションに必要なヘッダを設定します |
Access-Control-Max-Age |
86400 |
単位が秒のため、この例では24時間となっています |
Access-Control-Allow-Credentials |
true |
Cookieを送信する場合はtrue にします |
Cookieの送信
先の表にあるように、CORSを使用しながらCookieを送信したい場合はHTTPレスポンスヘッダにAccess-Control-Allow-Credentials: true
を設定する必要があります。
また、前述のようにフロントエンドとバックエンドでドメイン名が異なる環境においてSet-Cookie
レスポンスヘッダでSameSite
属性を使用する場合、値をNone
にする必要があります。
SameSite=None
の場合はSecure
属性が必須のため、Secure
属性を付与してHTTPSで通信するようにします。
※ このドキュメントはFintan コンテンツ 使用許諾条項の下に提供されています。
※ このドキュメントに記載されている会社名、製品名は、各社の登録商標または商標です。