2014年1月16日,W3C的Web應(yīng)用工作組(Web Applications Working Group)和Web應(yīng)用安全工作組(Web AppSec)聯(lián)合發(fā)布了跨源資源共享(Cross-Origin Resource Sharing)的W3C正式推薦標(biāo)準(zhǔn)(W3C Recommendation)。該標(biāo)準(zhǔn)定義了在必須訪問跨域資源時,瀏覽器與服務(wù)端應(yīng)該如何溝通,它提供一種機制,允許客戶端(如瀏覽器)對非源站點的資源發(fā)出訪問請求。所有提供跨源資源請求的API都可以使用本規(guī)范中定義的算法。
出于安全性的考慮,用戶代理(如瀏覽器)通常拒絕跨站的訪問請求,但這會限制運行在用戶代理的Web應(yīng)用通過Ajax或者其他機制從另一個站點訪問資源、獲取數(shù)據(jù)??缭促Y源共享(CORS)擴充了這個模型,通過使用自定義的HTTP響應(yīng)頭部(HTTP Response Header),通知瀏覽器資源可能被哪些跨源站點以何種HTTP方法獲得。例如,瀏覽器在訪問 http://example.com 站點的Web應(yīng)用時,Web應(yīng)用如果需要跨站訪問另一站點的資源 http://hello-world.example,就需要使用該標(biāo)準(zhǔn)。http://hello-world.example 在HTTP的響應(yīng)頭部中定義 Access-Control-Allow-Origin: http://example.org,通知瀏覽器允許 http://example.org 跨源從 http://hello-world.example上獲取資源。
CORS 圖解