Cross-Origin Resource Sharing(CORS)跨來源資源共享是一份瀏覽器技術的規範,提供了 Web 服務從不一樣域傳來沙盒腳本的方法,以避開瀏覽器的同源策略,是 JSONP 模式的現代版。與 JSONP 不一樣,
CORS 除了 GET 要求方法之外也支持其餘的 HTTP 要求。用 CORS 能夠讓網頁設計師用通常的 XMLHttpRequest,這種方式的錯誤處理比 JSONP 要來的好。另外一方面,JSONP 能夠在不支持 CORS 的老舊瀏覽器上運做。
現代的瀏覽器都支持 CORS。
關於瀏覽器跨域的原理,一個請求在瀏覽器端發送出去後,是會收到返回值響應的,只不過瀏覽器在解析這個請求的響應以後,發現不屬於瀏覽器的同源策略(地址裏面的協議、域名和端口號均相同),會進行攔截。
CORS is not about providing server-side security. The Origin request header is produced by the browser and the server has no direct means to verify it.跨域
CORS 並非爲了解決服務端安全問題,而是爲了解決如何跨域調用資源。至於如何設計出 安全的開放API,倒是另外一個問題了,這裏提下一些思路:瀏覽器
設置Access-Control-Allow-Origin安全