# ajax でクロスドメインする CORS(Cross-Origin Resource Sharing) ウェブブラウザから JavaScript により XMLHttpRequest を飛ばす、いわゆる **ajax** において、ドメインの異なるサーバにリクエストをしてレスポンスを受け取る場合に、**CORS**(**Cross-Origin Resource Sharing**) という仕組みが必要になります。 * ## CORS(Cross-Origin Resource Sharing) 例えば、example.com/index.html からホストが異なる b.example.com/foo への ajax 通信は、**Same-Origin Policy** のため不可能です。 # ajax 通信できない example.com --> b.example.com この制約をうまく回避する仕組みが、**CORS**(Cross-Origin Resource Sharing) です。 ### 概要 サーバサイドで Access-Control-Allow-Origin ヘッダを吐きます。 #### 全てのドメインからのリクエストを許容する Access-Control-Allow-Origin: "*" 例: nginx の場合 add_header Access-Control-Allow-Origin *; #### ドメインを指定してリクエストを許容する Access-Control-Allow-Origin: "http://example.com" 複数ドメインを許容する場合、クライアントからの Origin ヘッダをみて、Access-Control-Allow-Origin ヘッダを返却するなどする。