Ajax xmlhttprequest缺少“ Access-Control-Allow-Origin”标头

时间:2018-09-25 10:18:25

标签: javascript ajax localhost

我正在尝试执行一个简单的xmlhttprequest以便从本地主机中的json获取数据,为什么它不起作用并返回Failed to load http://127.0.0.1:8080/test: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

      var xmlRequest = new XMLHttpRequest();
  xmlRequest.onreadystatechange = stateChanged ;
  xmlRequest.open("GET", "http://127.0.0.1:8080/test", true);

  xmlRequest.send(null);
  console.log(xmlRequest.status);
  console.log(xmlRequest.readyState);


  function stateChanged() {
 if (xmlRequest.readyState == 4) {
  if (xmlRequest.status == 200) {
    message = "Text: " + xmlRequest.statusText + "nn" ;
    message += "Headers:n" +xmlRequest.getAllResponseHeaders() + "n" ;
    message += "Response:n" + xmlRequest.responseText ;
    alert(message) ;
    } else { alert("Error receiveing the XML data") ; }
  }
}

1 个答案:

答案 0 :(得分:0)

为了能够查询该URL,您需要设置Web服务器以发送适当的“ CORS”(跨源资源共享)HTTP标头。

浏览器尝试发出请求时,其内部安全设置会阻止该请求。

您应该通过添加“中间件”来调整Web服务器,该中间件通常会通过响应OPTIONS请求来发送适当的CORS标头。