てくのろーぐ

新卒エンジニアの日常ログ

CORS

CORS対策が必要となりそうなのでまとめました。

CORSとは

Cross-Origin Resource Sharingの略で、異なる2つのドメイン間でAJAXの実行を許可しないというWebブラウザ上の制約(同一生成元ポリシー)で起こるクロスドメイン問題を解決するためのもの。 安全性を考慮した上でクロスドメインアクセスを実現するための仕様としてW3Cが策定。あくまでもWebブラウザの問題なので、それ以外のものには関係がない。

CORSリクエストについて

これにはシンプルなリクエストとprefiredリクエストと呼ばれるものがあり、以下の条件すべて満たしたもの以外はすべて後者となる。

  • HTTPメソッドがGET, POST, HEADのいずれか
  • HTTPヘッダにAccept, Accept-Language, Content-Language, Content-Type以外のフィールドが含まれない
  • Content-Typeの値はapplication/x-www-form-urlencoded, multipart/form-data, text/plainのいずれか

  • 各リクエス

    • リソースにアクセスするリクエストを送信

      シンプルにリソースにアクセスするリクエストを送信する。 CORSで必要となるリクエストヘッドが含まれている事以外は通常のリクエストと変わらない。

    • preflightリクエストが送信されるパターン

      preflightリクエスト→ クロスドメインアクセスが可能かどうかを確認するリクエスト HTTPヘッダを使用してクロスドメインアクセス制御に関する情報を事前にやりとりする。HTTPのOPTIONメソッドが使用される

参考

詳しく知りたい方は下記のリンクが一番いい記事だと思います。

dev.classmethod.jp