2016-06-13 63 views
1

我想在JavaScript中使用XMLHttpRequest發送HTTP請求,所以我在HTML文件中使用以下代碼。我有服務器運行,返回一個形式爲{'test':'string'}的字典。跨源請求被阻止:在JavaScript中使用XMLHttpRequest

 <script type="text/javascript"> 
     var xhr = new XMLHttpRequest(); 
     xhr.open("GET", "http://localhost:5000/test", true); 
     xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); 
     xhr.send(); 

     xhr.onreadystatechange = processRequest; 
     console.log(xhr.status) 

     function processRequest(e) 
     { 
      if (xhr.readyState == 4) 
      { 
       alert(xhr.responseText); 
      } 
     } 
     </script> 

但是加入我正在跨來源請求阻塞頭的inspite:錯誤在我的控制檯,當我嘗試打印xhr.status控制檯它顯示0作爲響應。 我使用的是使用https顯示錯誤消息錯誤的服務器,所以我使用http請求。

+0

該腳本運行的頁面是否也託管在'http:// localhost:5000 /'上? –

+0

不,它是一個單獨的HTML文件,通過它我想發送一個HTTP請求。 – user40647

+0

這就是問題所在,請閱讀爲什麼它被阻止,可能[在這裏](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)。您不能在客戶端設置「Access-Control-Allow-Origin」標頭。這需要在服務器上設置,即服務器應允許您連接到其他域。 –

回答

1

您無法從前端控制CORS。您必須將CORS模塊放到您的後端服務器上。

檢查鏈接flask cors