我正在尝试通过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);
答案 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
不提供此类标题。)