【转】什么是CORS
CORS 全稱是跨域資源共享(Cross-Origin Resource Sharing),是一種 AJAX 跨域請求資源的方式,支持現(xiàn)代瀏覽器,IE支持10以上。
CORS與JSONP的使用目的相同,但是比JSONP更強大。JSONP只支持GET請求,CORS支持所有類型的HTTP請求。JSONP的優(yōu)勢在于支持老式瀏覽器,以及可以向不支持CORS的網站請求數(shù)據。
CORS可以分成兩種請求
瀏覽器將CORS請求分成兩類:簡單請求(simple request)和非簡單請求(not-so-simple request)
只要同時滿足以下兩大條件,就屬于簡單請求
- 請求方法是以下三種方法之一:
- HTTP的頭信息不超出以下幾種字段:
不同時滿足上面兩個條件,就屬于非簡單請求。
簡單請求時 Request Headers 會添加一個 Origin 字段
Accept:*/* Accept-Encoding:gzip, deflate, sdch Accept-Language:zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4,pt;q=0.2,fr;q=0.2 Cache-Control:no-cache Connection:keep-alive Host:b.code.com:8080 Origin:http://a.code.com:8080 Pragma:no-cache Referer:http://a.code.com:8080/ User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36以上會出現(xiàn)本次請求來自哪個源(協(xié)議 + 域名 + 端口),
Origin 指定的源,不在許可范圍內,服務器會返回一個正常的HTTP回應。
Response Headers 沒有包含 Access-Control-Allow-Origin 字段,
服務器拋出XMLHttpRequest不能加載的錯誤
如果 Origin 指定的域名在許可范圍內,服務器返回的響應,會多出1個頭信息字段。
Access-Control-Allow-Origin:http://a.code.com:8080對 Access-Control-Allow-Origin的值要么是請求時Origin字段的值,要么是一個*,表示接受任意域名的請求。
// 限制當前請求http://a.code.com:8080可以獲取數(shù)據 header("Access-Control-Allow-Origin", "http://a.code.com:8080"); // 接受任何請求 // header("Access-Control-Allow-Origin", "*");以上就可以跨域資源共享,實現(xiàn)跨域。
查看實例代碼
https://boloog.github.io/demos/Cross-domain/mp4/cors.mp4
?
2人點贊
?
日記本
?
作者:柏龍
鏈接:https://www.jianshu.com/p/e79024ba9cc7
來源:簡書
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。
總結
以上是生活随笔為你收集整理的【转】什么是CORS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京新地标 亚洲最大铁路枢纽客站开通运营
- 下一篇: 为何人类在核潜艇上最多只能待90天?