2016-06-13 112 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

相关问题