JavaScript のオブジェクト XMLHttpRequest を使用すると、非同期に Web サイト上からデータを取得することができます。
ただし、XMLHttpRequest はセキュリティ上の考慮から Same Domain Policy の上で動いており、JavaScript をダウンロードしたドメインからしかデータを取得することができません。
CORS (Cross-Origin Resource Sharing) は、この制限をなくして別のドメインからのデータ取得を可能にする仕組みです。
CORS 以下のような感じで実現されてます。
XMLHttpRequest のアクセス制限は、ブラウザが実装しているものである。Acess-Control-Allow-Origin: http://example.com のように、アクセス許可できるドメインを指定する。XMLHttpRequest でアクセスする。XMLHttpRequest#withCredentials = true と設定し、cookie を送るようにする。要するに、CORS の利用には以下の対応が必要になります。
一般的なブラウザは CORS に対応している(CORS 用の HTTP response header を解釈する)ので、あとは各アプリが実装すれば CORS の仕組みを利用することができます。