无法在'XMLHttpRequest'Syncronous

时间:2016-01-11 19:03:09

标签: javascript http

我正在尝试通过JS通过简单的get请求连接到谷歌,它似乎总是给我同样的错误。

“无法在'XMLHttpRequest'上执行'发送':无法加载'http://google.com'。”

任何线索为什么会发生这种情况?相关代码如下。

        var xmlHttp = new XMLHttpRequest();
        xmlHttp.open("GET", "http://google.com", false);
        try {
            xmlHttp.send();
        } catch (err) {
            alert("EXCEPTION: " + err.message);
        }
        alert("here's the result of the get: " + xmlHttp.responseText);

1 个答案:

答案 0 :(得分:4)

由于same origin policy,这只是一个跨源权限失败。如果您异步运行同一个请求并在控制台中查看,则会看到更有用的错误消息:

  

XMLHttpRequest无法加载http://google.com/。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://[whatever]'因此不允许访问。

这是因为只有http://www.google.com页面上运行的脚本才能从http://www.google.com读取资源。如果正在获取的资源提供了适当的CORS头(例如,Access-Control-Allow-Origin),则不会看到此错误。 (但是,http://www.google.com不提供此类标题。)