Cross-Origin Resource Sharing (CORS):メモ

オリジン間リソース共有 (CORS)
オリジン間リソース共有 (Cross-Origin Resource Sharing, CORS) は、追加の HTTP ヘッダーを使用して、あるオリジンで動作しているウェブアプリケーションに、異なるオリジンにある選択されたリソースへのアクセス権を与えるようブラウザーに指示するための仕組みです。ウェブアプリケーションは、自分とは異なるオリジン (ドメイン、プロトコル、ポート番号) にあるリソースをリクエストするとき、オリジン間 HTTP リクエストを実行します。
あるドメイン (company.comなど) のブラウザで、別のドメイン (box.com) から画像、ファイル、またはAPIリソースを取得しようとする場合、適切なCORSヘッダーが存在しない限り、そのウェブブラウザにより、これらのアセットへのアクセスが阻止されます。

originとdomainの違い
※クロスオリジン禁止ならメソッド(httpとhttps)の違いでもOUT。でもクロスドメインならせーふ!

オリジン間リクエストとは
別オリジンのリソースちょーだい
オリジン間リクエストとは、例えば https://domain-a.com で提供されているウェブアプリケーションのフロントエンド JavaScript コードが XMLHttpRequest を使用して https://domain-b.com/data.json へリクエストを行うような場合です。

XMLHttpRequest
JavaScript で HTTP リクエストを行うための組み込みのブラウザオブジェクト
よりモダンなメソッド fetch がある
XMLHttpRequest (XHR) オブジェクトは、サーバーと対話するために使用されます。ページ全体を更新する必要なしに、データを受け取ることができます。これでユーザーの作業を中断させることなく、ウェブページの一部を更新することができます。

Preflight request (プリフライトリクエスト)
CORS のリクエストの一つであり、サーバーが CORS プロトコルを理解していて準備がされていることを、特定のメソッドとヘッダーを使用してチェックします。
ブラウザーが自動的に発行するもの
単純リクエスト
『 CORS プリフライト』をしないリクエスト。現在のFetchではこういう用語使わない(?)
