Ajax請求一個目標地址爲非本域(協議、域名、端口任意一個不一樣)的web資源,並根據響應得到外部應用數據。ajax跨域請求時不會帶上cookie等用戶認證憑據的。咱們請求一個外部服務時,瀏覽器會基於安全問題拒絕受權訪問。javascript
解決方案:前端
1.設置服務端設置響應頭java
Header("Access-Control-Allow-Origin", "*");web
Header("Access-Control-Allow-Credentials", "true");ajax
值可設爲:json
1. ‘*’ 泛型支持全域名。後端
2. 'request.getHeader("Origin")' 獲取請求域的域名。跨域
3. ‘http://a’ 指定響應的域名。瀏覽器
後端JAVA代碼:緩存
response.addHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));//指定域名 response.addHeader("Access-Control-Allow-Credentials", "true");//響應cookie
前端代碼JavaScript:
$.ajax({ type: "GET", url: requestURL, data: {json: JSON.stringify(jsonArray)}, //傳入組裝的參數 cache: false,//不緩存當前頁面 dataType: "JSON", xhrFields: { withCredentials: true//跨域請求時發送cookie }, crossDomain: true,//跨域 success: function (data) { if (data.code == "10000") { } } });