天天看點

已攔截跨源請求:同源政策禁止讀取位于 http:**** 的遠端資源。(原因:CORS 頭缺少 ‘Access-Control-A

報錯:

Access to fetch at ‘https://www.baidu.com/’ from origin ‘http://www.baidu.com’ has been blocked by CORS policy: The ‘Access-Control-Allow-Origin’ header contains multiple values ‘*, *’, but only one is allowed. Have the server send the header with a valid value, or, if an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

已攔截跨源請求:同源政策禁止讀取位于 http*****的遠端資源。(原因:CORS 頭缺少 ‘Access-Control-Allow-Origin’)。

CORS一般不需要在浏覽器配置,浏覽器發現這次跨源AJAX請求是簡單請求,就自動在頭資訊之中,添加一個Origin字段,Origin字段用來說明,本次請求來自哪個源(協定 + 域名 + 端口)。

伺服器根據這個值,決定是否同意這次請求,也就是說伺服器會存在一份白名單,說明哪一些源是可以被允許的,而Access-Control-Allow-Origin就是包含在回應頭裡的白名單。

浏覽器發現,這個回應的頭資訊沒有包含Access-Control-Allow-Origin字段,就知道出錯了,進而抛出一個錯誤,也就是你遇到的提示,是傳回結果被浏覽器攔截了,而不是請求發不出。

是以你需要的是在伺服器上配置這個白名單,而不是更改頁面

已攔截跨源請求:同源政策禁止讀取位于 http:**** 的遠端資源。(原因:CORS 頭缺少 ‘Access-Control-A

解決辦法1:

var url='http://localhost:8080/WorkGroupManagment/open/getGroupById"
       +"?id=1&callback=?';
   $.ajax({
     url:url,
     dataType:'jsonp',
     processData: false, 
     type:'get',
     success:function(data){
       alert(data.name);
     },
     error:function(XMLHttpRequest, textStatus, errorThrown) {
       alert(XMLHttpRequest.status);
       alert(XMLHttpRequest.readyState);
       alert(textStatus);
     }});
           

解決辦法2:

var url="http://localhost:8080/WorkGroupManagment/open/getGroupById"
    +"?id=1&callback=?";
$.jsonp({
  "url": url,
  "success": function(data) {
    $("#current-group").text("目前工作組:"+data.result.name);
  },
  "error": function(d,msg) {
    alert("Could not find user "+msg);
  }
});


           

解決辦法3

被請求頁面加上下面代碼,最好content填寫域名

解決辦法4,在請求控制器加上

header(“Access-Control-Allow-Origin: *”);

解決辦法5,修改nginx配置檔案

add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET,POST';
add_header 'Access-Control-Allow-Headers' 'x-requested-with,content-type';

           

繼續閱讀