尝试从同一域中的站点获取资源时出现 Access-Control-Allow-Origin 错误?
我只是想从服务器上的其他站点之一获取 html 并将其打印在当前站点上。这基本上是我正在做的事情:
// The object
var xmlhttp = new XMLHttpRequest();
// When a button is pressed, we get the html
function printJSON(action)
{
otherURL = "http://www.my.domain.com/other.php?action=" +action;
xmlhttp.open('GET',otherURL,true);
xmlhttp.send();
}
// and then print it in this div
xmlhttp.onreadystatechange = function
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
$('JSON_output').innerHTML = xmlhttp.responseText;
}
}
我收到的错误是:
XMLHttpRequest 无法加载 http://www.my.domain.com/other.php?action=SEARCH。 Access-Control-Allow-Origin 不允许来源 http://my.domain.com。
这看起来很奇怪,因为这是服务器上的一个站点试图访问同一文件夹中的另一个站点。我的服务器有什么需要调整的吗?我需要设置 xmlhttp 中的属性吗?
干杯!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
http://www.my.domain.com 和 http://my.domain.com 是两个不同的域(注意 www) /Same_origin_policy_for_JavaScript" rel="nofollow">JavaScript同源策略。
如果 www.my.domain.com 和 my.domain.com 指向同一个地方,最简单的解决方案是使
otherURL
相对;以“/other.php?action=”开始;这样,它将始终与您的页面位于同一域中。如果它们不这样做,则指向同一个地方,有一个更复杂的解决方案,涉及您的服务器输出名为 跨域资源共享; 这里是概述。
http://www.my.domain.com and http://my.domain.com are two different domains (note the www) according to the JavaScript same-origin policy.
If www.my.domain.com and my.domain.com point to the same place, the simplest solution would be to make
otherURL
relative; start it with "/other.php?action="; that way, it will always be on the same domain as your page.If they do not, point to the same place, there is a much more complicated solution involving your server outputting additional headers called Cross Origin Resource Sharing; here's an overview.