1. 程式人生 > >JS跨域請求的解決方案

JS跨域請求的解決方案

出現JS跨域請求的原因: 瀏覽器檢測到源的異常

什麼叫做JS跨域: 兩個應用協議,主機地址(域名),埠號。三者有一個不同,則認為他們的域不同。 例如: http:localhost:80/a https:localhost:80/b 此時的a與b的應用協議是不同的,這時他們的域也是不同的,在此時a的應用js指令碼去呼叫b的後端,會出現js跨域。

解決方案: 1.前臺,JSONP。(不去研究) 2.後端,CORS。

在請求的時候,發現是跨域請求之後,會產生預請求和預響應。之後才會傳送真的請求和接收響應。

解決方案: 根據請求地址,找到Controller的請求二級目錄的方法,在其中設定響應頭。 1.不需要操作cookie //可以訪問的域 response.setHeader(“Access-Control-Allow-Origin”,“

http://localhost:xxx”);

2.需要操作跨域cookie(對有操作cookie的跨域請求時,url不能使用*) //操作cookie時,在客戶端Controller.js傳送請求的時候里加上{withCredentials":true}才可以對跨域cookie操作, 對跨域cookie操作 服務端和客戶端都必須同意操作,在後面加上如下這一行程式碼即可 response.setHeader(“Access-Control-Allow-Credentials”,“true”);