勵志

勵志人生知識庫

cors策略

CORS(跨域資源共享)是一種W3C標準,全稱為"Cross-Origin Resource Sharing"。它允許網頁向不同源的伺服器發出XMLHttpRequest請求,從而突破了AJAX技術只能同源使用的限制。CORS需要瀏覽器和伺服器同時支持,目前所有瀏覽器都支持CORS,但要求IE瀏覽器版本至少為IE10。在CORS通信過程中,瀏覽器自動處理所有事情,用戶無需參與。對於開發者來說,使用CORS與同源AJAX通信沒有差別,代碼可以完全相同。瀏覽器在發現AJAX請求跨源時,會自動添加一些額外的頭信息,有時甚至會發起一次額外的請求,但用戶通常不會有感覺。

CORS將請求分為簡單請求和非簡單請求。簡單請求是指滿足以下條件的請求:

請求方法必須是GETPOSTHEAD之一;

請求頭信息不超出以下幾種欄位:Accept、Accept-Language、Content-Language、Content-Type(僅限於application/x-www-form-urlencoded、multipart/form-data、text/plain)。

對於非簡單請求,瀏覽器會先發出一個預檢請求(preflight request),該請求是一個OPTIONS請求,用於詢問伺服器是否允許實際請求。

伺服器必須正確配置CORS回響頭,如Access-Control-Allow-Origin和Access-Control-Allow-Methods等,以允許或拒絕跨源請求。如果伺服器沒有正確配置這些頭,瀏覽器將無法完成CORS請求,可能會拋出錯誤。