コンテンツにスキップ

CORS(オリジン間リソース共有)

フロントエンドをCDN(Content Delivery Network)から配信するなどの理由で、フロントエンドとバックエンドで異なるドメイン名を持つ場合があります。

ドメイン名が異なるとブラウザの同一オリジンポリシーによりアクセスが制限されてしまうため、CORSを使用します。

CORSに関連するHTTPレスポンスヘッダの設定例は次の通りです。

HTTPレスポンスヘッダ 設定する値 備考
Access-Control-Allow-Origin フロントエンドのURL
Access-Control-Allow-Methods GETPOSTPUTDELETEPATCHOPTIONS プリフライトリクエストのためにOPTIONSを許可します
Access-Control-Allow-Headers Content-Type アプリケーションに必要なヘッダを設定します
Access-Control-Max-Age 86400 単位が秒のため、この例では24時間となっています
Access-Control-Allow-Credentials true Cookieを送信する場合はtrueにします

先の表にあるように、CORSを使用しながらCookieを送信したい場合はHTTPレスポンスヘッダにAccess-Control-Allow-Credentials: trueを設定する必要があります。

また、前述のようにフロントエンドとバックエンドでドメイン名が異なる環境においてSet-CookieレスポンスヘッダでSameSite属性を使用する場合、値をNoneにする必要があります。 SameSite=Noneの場合はSecure属性が必須のため、Secure属性を付与してHTTPSで通信するようにします。


※ このドキュメントはFintan コンテンツ 使用許諾条項の下に提供されています。

※ このドキュメントに記載されている会社名、製品名は、各社の登録商標または商標です。