CORS のバックアップソース(No.1)

#author("2021-03-15T12:02:04+09:00","default:k1rou","k1rou")
*CORS [#yaea62d3]
-Cross-Origin Resource Sharing

**CORS とは [#b3fa1308]
-Webサイトの異なるドメインとのデータのやりとりをできるようにする方法。
-[[JSONP]]のセキュリティ上のリスクを低減する技術。

**仕組み([[XMLHttpRequest]]) [#reb7f92c]
-Access-Control-Allow-Originヘッダ
--クロスオリジンでデータを提供する側が、[[HTTP]]ヘッダにAccess-Control-Allow-Originヘッダを付加する。

-プリフライトリクエスト
--pre-flight request
--同一生成元としての条件を満たさなかった場合に、Webブラウザが送信するHTTPリクエスト
--リクエスト:1.Access-Control-Request-Method、2.Access-Control-Request-Headers、3.Origin
--応答:1.Access-Control-Allow-Method、2.Access-Control-Allow-Headers、3.Access-Control-Allow-Origin

-Cookieの送信
--デフォルトは送信しない。
--送信する場合は、リクエストで[[XMLHttpRequest]]の withCredentialsプロパティにtrueを設定する。
--応答:Access-Control-Allow-Credentials(true)

**関連用語 [#s08a50ab]
-[[Ajax]]
-[[JSON]]
-[[JSONP]]
-[[SOP]] -Same Origin Policy(同一生成元ポリシー)
-[[XMLHttpRequest]]
-[[クロスオリジン]]