# 跨域請求解決方案 #
## js跨域請求的簡單介紹: ##
這裡說的js跨域是指通過js在不同的域之間進行資料傳輸或通訊,比如用ajax向乙個不同的域請求資料,或者通過js獲取頁面中不同域的框架中(iframe)的資料。**只要協議、網域名稱、埠有任何乙個不同,都被當作是不同的域**。
## 跨域解決方案cors ##
cors 是乙個w3c標準,全稱是"跨域資源共享"(cross-origin resource sharing)。cors需要瀏覽器和伺服器同時支援。目前,所有瀏覽器都支援該功能,ie瀏覽器不能低於ie10。
它允許瀏覽器向跨源伺服器,發出xmlhttprequest請求,從而克服了ajax只能同源使用的限制。整個cors通訊過程,都是瀏覽器自動完成,不需要使用者參與。對於開發者來說,cors通訊與同源的ajax通訊沒有差別,**完全一樣。瀏覽器一旦發現ajax請求跨源,就會自動新增一些附加的頭資訊,有時還會多出一次附加的請求,但使用者不會有感覺。因此,實現cors通訊的關鍵是伺服器。只要伺服器實現了cors介面,就可以跨源通訊。
1. browser ------preflight request----->server
1. browser <-----preflight response-----~
1. browser ------real request---------->~
1. browser <-----real response----------~
## 設定頭資訊 ##
//客戶端js需要加的資訊
//伺服器端需要加的資訊,告訴伺服器需要放行的源請求位址
response.setheader("access-control-allow-origin", "http://ip:埠");
response.setheader("access-control-allow-credentials", "true");//操作cookie需要加這一句
註解方式@crossorigin(origins="http://localhost:9105",allowcredentials="true")
//注意此方式需要springmvc4.2以上的版本,若發生預設錯誤的話檢查jdk版本
跨域請求解決方案
1.什麼叫js跨域請求 js跨域是指通過js在不同的域之間進行資料傳輸或通訊,比如用ajax向乙個不同的域請求資料,或者通過js獲取頁面中不同域的框架中 iframe 的資料。什麼是不同的域 只要協議 網域名稱 埠有任何乙個不同,都被當作是不同的域。2.下面貼上一段請求 這用的是angularjs編...
跨域請求解決方案
在前端開發過程中,難免和服務端產生資料互動。一般情況我們的請求分為這麼幾種情況 只關注傳送,不關注接收 不僅要傳送,還要關注服務端返回的資訊 上面提到了乙個概念,我們這裡簡單做一下講解。什麼叫做跨域?一般情況下,跨域分為三種情況 跨協議 跨子域 跨網域名稱。下面距離梳理一下這三種情況。我們需要知道的...
JS跨域請求解決方案
2 跨域解決方案cors 這裡說的js跨域是指通過js在不同的域之間進行資料傳輸或通訊,比如用ajax向乙個不同的域請求資料,或者通過js獲取頁面中不同域的框架中 iframe 的資料。只要協議 網域名稱 或主機位址 埠有任何乙個不同,都被當作是不同的域。不同的域,網域名稱不同 不同的域,位址不一樣...