Javascript 同源策略导致从www.example.com到example.com的Ajax请求被拒绝?

Javascript 同源策略导致从www.example.com到example.com的Ajax请求被拒绝?,javascript,ajax,security,same-origin-policy,Javascript,Ajax,Security,Same Origin Policy,如果您访问的网站位于,则任何ajax请求(www丢失)都会导致以下消息显示在google chrome的控制台中: XMLHttpRequest cannot load http://example.com/dir/something.php. Origin http://www.example.com is not allowed by Access-Control-Allow-Origin. 这是怎么回事?我们能做些什么来解决这个问题 编辑:当您访问www.example.com时,exa

如果您访问的网站位于,则任何ajax请求(www丢失)都会导致以下消息显示在google chrome的控制台中:

XMLHttpRequest cannot load http://example.com/dir/something.php.
Origin http://www.example.com is not allowed by Access-Control-Allow-Origin.
这是怎么回事?我们能做些什么来解决这个问题

编辑:当您访问www.example.com时,example.com设置的任何cookie似乎也会消失?

子域被视为“不同的域”,因此将被阻止。其中包括
www
,因为它被认为是
example.com

可以通过iframe通信解决此问题,因为iframe可以与主页内容通信,只要它们位于同一个顶级域中。

子域被视为“不同的域”,因此将被阻止。其中包括
www
,因为它被认为是
example.com


可以通过iframe通信解决这个问题,因为iframe可以与主页内容通信,只要它们位于同一个顶级域中。

www.example.com
example.com
是不同的域,它们可以提供不同的内容
www.stackoverflow.com
仅重定向到
stackoverflow.com
,但从技术上讲,它可以显示一个满是小马的站点


请参阅-它实际上使用了完全相同的
example.com
(nomen est omen!)作为示例。

www.example.com
example.com
是不同的域,它们可以提供不同的内容
www.stackoverflow.com
仅重定向到
stackoverflow.com
,但从技术上讲,它可以显示一个满是小马的站点



请参阅-它实际上使用了完全相同的
example.com
(nomen est omen!)作为示例。

策略坚持方案、主机名和端口号(如指定)完全相同。@Pointy如何解决此问题?您可以通过将所有页面放在同一个域中来解决。它们指向同一个域,但是,如果有人在url前面手动键入www,则会导致ajax请求无法工作。有没有一种方法可以在不使用.htaccess的情况下将所有内容从www重定向到www,这会解决这个问题?没有,您不能在服务器端执行此操作,因为执行此规则的是浏览器。为什么要允许用户输入用作XHR上的URL?我想,您可以使用JavaScript来确保任何此类URL都有正确的域。该策略坚持方案、主机名和端口号(如指定)完全相同。@Pointy如何解决这个问题?您可以通过将所有页面放在同一域中来解决。它们指向同一域,但是,如果有人在url前面手动键入www,则会导致ajax请求无法工作。有没有一种方法可以在不使用.htaccess的情况下将所有内容从www重定向到www,这会解决这个问题?没有,您不能在服务器端执行此操作,因为执行此规则的是浏览器。为什么要允许用户输入用作XHR上的URL?我想,你可以使用JavaScript来确保任何这样的URL都有正确的域。这里的子域是什么?除了一个有www和一个没有www之外,它是同一个域。@ClickUpvote
www
被认为是一个子域。这就导致了错误。如果iFrame不是一个选项,那么这种情况下的解决方案是什么?我可以通过.htaccess进行重定向吗?@JosephDreamer如果页面尝试使用其他域的请求,浏览器将不允许它-服务器端重定向无法解决该问题。@Pointy我想我误解了这一点。我想我的意思是重定向页面,使目标域与页面的域匹配。因此,访问
www
版本将重定向到无www版本,然后AJAX将使用无www URL。这里的子域是什么?除了一个有www和一个没有www之外,它是同一个域。@ClickUpvote
www
被认为是一个子域。这就导致了错误。如果iFrame不是一个选项,那么这种情况下的解决方案是什么?我可以通过.htaccess进行重定向吗?@JosephDreamer如果页面尝试使用其他域的请求,浏览器将不允许它-服务器端重定向无法解决该问题。@Pointy我想我误解了这一点。我想我的意思是重定向页面,使目标域与页面的域匹配。因此,访问
www
版本将重定向到无www版本,从那里,AJAX将使用无www URL。