【问题标题】:Vanilla JS: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed accessVanilla JS:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'null' 不允许访问
【发布时间】:2017-07-17 05:49:07
【问题描述】:

我正在尝试向另一台服务器发出一个非常简单的请求。我在 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”标头。因此不允许访问 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 上浏览网页或类似问题没有帮助。

【问题讨论】:

  • 我猜你是直接在浏览器中运行你的 HTML 文件。不是吗?
  • @GangadharJannu 是的!这正是我正在做的。我想你有一个解释,我等不及了! :)

标签: javascript xmlhttprequest cors


【解决方案1】:

您需要设置(并了解)CORS

为了扩展一点,您尝试访问的站点必须发送 CORS 标头。由于这超出了您的控制范围,您可以做的是在您的 Web 服务器上代理该站点。

【讨论】:

  • 谢谢!我没有很好地捕捉到错误信息。我以为服务器端没问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 2014-03-13
  • 2016-05-27
  • 2018-07-06
  • 2013-12-24
  • 2018-10-23
  • 2017-02-04
相关资源
最近更新 更多