TL;DR

ブラウザが、異なるオリジンの間でリソースを共有するための仕組み。同一生成元ポリシーで制限される Cross-origin へのリクエストを、許可リスト形式で許可する。

仕組み

サーバは HTTP ヘッダを使って、どのオリジンからのリクエストを許可するかを指定する。レスポンスで使うヘッダには、次のものがある。

  • Access-Control-Allow-Origin: リクエストを許可するオリジンを、特定のオリジンか * で示す。
  • Access-Control-Allow-Methods: 許可する HTTP メソッドを指定する。
  • Access-Control-Allow-Headers: 許可するカスタム HTTP ヘッダを指定する。
  • Access-Control-Allow-Credentials: Cookie などの認証情報を含むリクエストを許可するかを示す。

一方、リクエストでは Origin ヘッダでリクエスト元のオリジンを示す。

関連

出典