CORS(Cross-Origin Resource Sharing)は、**ブラウザ**が別オリジンへのリクエストを行うときに、サーバーが「どのオリジンからのアクセスを許可するか」をレスポンスヘッダで宣言する仕組み。

何が嬉しい?

  • 同一オリジンポリシー(ブラウザの基本制約)を前提にしつつ、必要なケースだけ安全に「別オリジン通信」を許可できる

重要なヘッダ(代表)

  • Origin
  • Access-Control-Allow-Origin
  • Access-Control-Allow-Methods
  • Access-Control-Allow-Headers
  • Access-Control-Allow-Credentials

よくある落とし穴

  • プリフライト(OPTIONS) が必要なケースがある(「単純リクエスト」以外)
  • 認証情報(Cookie 等)を送る場合、Access-Control-Allow-Origin: * は使えない

関連