访问控制允许在url中使用和不使用www的来源问题



我制作了一个小的gwt应用程序并发布了它,但今天我发现了一个严重的问题。我意识到同源策略问题,所以我把我的gwt应用程序和rest json应用程序放在了同一台服务器上。但显然浏览器并不考虑http://www.xyz.com和http://xyz.com作为同一来源,因此当用户登录www.xyz.com时,他无法从http://xyz.com.

这是一条信息:

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

处理这个问题的最佳方法是什么?我在谷歌上搜索了一下,第一次找到了对tomcat不起作用的.htaccess解决方案。我最终使用了一个空的登录页index.html,只重定向到没有www的url。这不是最好的解决方案,因为有人仍然可以键入带有www的url,它不会索引页面,所以不会被重定向。

任何帮助都将不胜感激。

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

也就是说,你应该"http://example.com"如果应用程序可以从http://www.example.com.

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

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

相关内容

  • 没有找到相关文章

最新更新