chrome 出现以下问题...:
我已经在服务器上运行 Grails 1.3.7 应用程序。我注意到,当我从 Chrome 请求静态内容(例如非动态 html 文件)时,Chrome 会创建两个 JSESSIONID-Cookie。第一个是登录窗口出现时,第二个是成功登录后。如果我想刷新页面或请求其他资源,我必须再次登录。 (我想是因为Tomcat不理解那两个cookie)
我已经用 FF 尝试过了,但 FF 只是创建了一个 Cookie 并且它工作得很好。
另外,我已经在本地运行了该应用程序,即使在 Chrome 上也能完美运行。所以,一定是tomcat出了问题。
环境:
- Grails-Application 1.3.7(带有 Spring-Security-Core 1.2.4)
- Apache Tomcat 7(在 Windows Server 2008 上)
我的httpd.conf:
ProxyPass /manager http://myUrl:8080/manager
ProxyPass /myGrailsApp http://myUrl:8080/myGrailsApp
ProxyPassReverse /manager http://myUrl:8080/manager
ProxyPassReverse /myGrailsApp http://myUrl:8080/myGrailsApp
ProxyPass / http://myUrl:8080/myGrailsApp/frontend
ProxyPassReverse / http://myUrl:8080/myGrailsApp/frontend
提前致谢。
更新1:
我重新构建、重新部署应用程序并再次重新启动 tomcat。
现在我注意到:Chrome 不再生成两个 cookie。但错误是一样的。每次我刷新或请求某些内容时,JSESSIONID 都会发生变化,我必须重新登录。
tomcat 服务器上的简短观察显示大量活动会话 - 来自 chrome 的会话...
更新2:
我在服务器本地尝试过(使用chrome):
- localhost/myApp/frontend => Apache => 失败
- 本地主机:8080/myApp/frontend => Tomcat => 确定
看来 Apache 是问题所在(?)。
解决方案:
我懂了 :)
Grails *.gsp-Templates 总是请求 'favicon.ico'each要求。
错误出现在静态内容(如 html 文件)上的原因是我们从 Grails 应用程序重定向到这些资源。
所以我已将 favicon.ico 放在正确的位置,现在它可以工作了:)
此错误仅涉及 Google Chrome,在 FF 和 IE 中它运行没有任何问题。
我也遇到了这个问题。我花了一段时间才弄清楚发生了什么(包括使用 Wireshark 进行嗅探),并且还花了更多时间来找到可行的解决方案。
终于找到这个话题了https://vaadin.com/forum/-/message_boards/view_message/1216366 https://vaadin.com/forum/-/message_boards/view_message/1216366
看来这是 Chrome/Safari(Webkit 浏览器?)及其处理重定向 cookie 的方式的问题。
简单的解决方法是将 context.xml 添加到我的 spring 项目中的 META-INF 目录中,其中包含
<?xml version='1.0' encoding='utf-8'?>
<Context sessionCookiePathUsesTrailingSlash='false'>
</Context>
然后重新部署新的war文件。现在一切都按预期进行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)