Vanilla JS:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点'null'访问

时间:2017-02-26 17:30:37

标签: javascript xmlhttprequest cors

我正在尝试向另一台服务器发出一个非常简单的请求。我在Chrome检查面板中看到了预期的响应,但浏览器不允许请求:

  

XMLHttpRequest无法加载http://search.maven.org/solrsearch/select?q=g%3A%22org.testng%22%20AND%20a%3A%22testng%22&rows=20&wt=json。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点'null'访问。

我的档案只是:

<!DOCTYPE html>
<html>
  <body>

    <div id="testng-version"></div>

    <script type="text/javascript">
    //<![CDATA[

    var xhr = new XMLHttpRequest();
    var url = "http://search.maven.org/solrsearch/select?q=g%3A%22org.testng%22%20AND%20a%3A%22testng%22&rows=20&wt=json";

    xhr.open("GET", url, true);
    xhr.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        var resp = JSON.parse(this.responseText);
        document.getElementById("testng-version").innerHTML = resp.docs[0].latestVersion;
      }
    };

    xhr.send();

    //]]>
    </script>
  </body>
</html>

在StackOverflow上浏览网页或类似问题没有帮助。

1 个答案:

答案 0 :(得分:1)

您需要设置(并了解)CORS

要扩展一点,您尝试访问的网站必须发送CORS标头。由于您无法控制,您可以执行的操作是在Web服务器上代理该站点。