瀏覽器將cors請求分為兩類:簡單請求和非簡單請求
只要同時滿足以下兩大條件,就屬於簡單請求。
5.0...簡單請求不允許跨域
簡單請求允許跨域
8頭資訊欄位中有三個與cors請求相關的字段,都是以access-control-開頭的
;但是,如果省略withcredentials設定,有的瀏覽器還是會一起傳送cookie。這時,可以顯式關閉withcredentials。
xhr.withcredentials =
false
;
注意:如果要傳送cookie,access-control-allow-origin就不能設為星號,必須指定明確的、與請求網頁一致的網域名稱。同時,cookie依然遵循同源政策,只有用伺服器網域名稱設定的cookie才會上傳,其他網域名稱的cookie並不會上傳,且(跨源)原網頁**中的document.cookie也無法讀取伺服器網域名稱下的cookie。解決cookie跨域問題可以通過設定document.domain來實現。
非簡單請求的cors請求,會在正式通訊之前,增加一次http查詢請求,稱為預檢請求瀏覽器會先詢問伺服器,當前網頁所在的網域名稱是否在伺服器的許可名單之中,以及可以使用哪些http動詞和頭資訊字段。只有得到肯定答覆, 瀏覽器才會發出正式的xmlhttprequest請求,否則就報錯。
5.0...非簡單請求不允許跨域
is not allowed by access-control-allow-origin.非簡單請求允許跨域
1728000一旦伺服器通過了"預檢"請求(在有效期內),以後每次瀏覽器正常的cors請求,就都跟簡單請求一樣,會有乙個origin頭資訊字段。伺服器的回應,也都會有乙個access-control-allow-origin頭資訊字段。
下面是**"預檢"請求之後**,瀏覽器的正常cors請求,瀏覽器自動新增origin欄位。
5.0...伺服器正常的回應
跨域解決CORS
1.js跨域 js跨域是指通過js在不同的域之間進行資料傳輸或通訊,比如用ajax向乙個不同的域請求資料,或者通過js獲取頁面中不同域的框架中 iframe 的資料。只要協議 網域名稱 埠有任何乙個不同,都被當作是不同的域。localhost 9000中的ajax 向localhost 9001中的...
cors解決跨域
cors是乙個w3c標準,全稱是 跨域資源共享 cross origin resource sharing 它允許瀏覽器向跨源伺服器,發出xmlhttprequest請求,從而克服了ajax只能同源使用的限制。cors需要瀏覽器和伺服器同時支援。目前,所有瀏覽器都支援該功能,ie瀏覽器不能低於ie1...
cors解決跨域
cors是乙個w3c標準,全稱是 跨域資源共享 cross origin resource sharing 它允許瀏覽器向跨源伺服器,發出xmlhttprequest 請求,從而克服了ajax只能同源 使用的限制。cors需要瀏覽器和伺服器同時支援。目前,所有瀏覽器都支援該功能,ie瀏覽器不能低於i...