访问控制 - 允许 - 起源问题有和没有www在url

问题描述:

我已经做了一个小的gwt应用程序,并发布它,但今天我发现了一个严重的问题。我知道同样的原产地政策问题,所以我已经将我的gwt应用程序和其他json应用程序放在同一台服务器上。但显然,浏览器并不认为http://www.xyz.comhttp://xyz.com是同一个源,所以当用户登陆www.xyz.com时,他不能从http://xyz.com获取数据。访问控制 - 允许 - 起源问题有和没有www在url

这是消息:

XMLHttpRequest cannot load http://xyz.com/backend/... 
Origin http://www.xyz.com is not allowed by Access-Control-Allow-Origin. 

什么是解决这个问题的最好方法是什么?我GOOGLE了,并且首先发现.htaccess解决方案不适用于tomcat。我最终使用了一个空着陆页面index.html,只有重定向到没有www的url。这不是最好的解决方案,因为有人仍然可以使用www输入url,而不会去索引页面,所以它不会被重定向。

任何帮助将不胜感激。

除非绝对必要,否则不应在应用中使用绝对URL。

I.e.如果应用程序可以从http://www.example.com加载,则应该在代码中包含“http://example.com”。

例如,如果你想加载一些数据,例如, http://example.com/abc/def,然后在您的代码中输入"/abc/def"而不是"http://example.com/abc/def"。这样,如果应用程序已从http://www.example.com加载,则浏览器会将URL解析为http://www.example.com/abc/def,如果已从http://example.com加载,则将URL解析为http://example.com/abc/def。你永远不会冒险打到同源政策。

+0

好的,就是这样。谢谢。 – 2012-02-21 13:43:01

您应该只在一个子/域下托管一个网站。所有到http://www.example.com的流量应重定向到http://example.com,反之亦然。

+0

这听起来不错,你能指出我在正确的方向如何实现这一目标吗? – 2012-02-21 01:44:48

+0

这取决于您的Web服务器。我对tomcat一无所知,但这个问题可能会有所帮助:http://*.com/questions/1363605/tomcat-base-url-redirection – abraham 2012-02-21 04:53:18

+0

谢谢你的努力。在发布问题之前,当我试图找到解决方案时,我已经看到了您提到的问题,这与问题不一样。 – 2012-02-21 13:44:30