Ajax跨域請求

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") {
                }
            }
        });
相關文章
相關標籤/搜索