只有第一次登录请求设置的Cookie JSESSIONID才会在后续请求中发送?

时间:2015-05-15 07:00:20

标签: google-chrome session cookies session-cookies jsessionid

我无法理解发生了什么。在其中一个环境。我的webapp(使用ExtJS 4.0编写) - 我看到登录请求成功完成,但后续请求因401失败。

当我在浏览器(F12)中发现更多时,我发现第一个请求的响应头有JSESSIONID,它被设置为cookie,但是第二个请求并没有在它的请求头中发送它。这就是为什么第二个请求创建一个新会话并返回一个新的JSESSIONID。

在发送请求的客户端代码中,
Ext.Ajax.request({url:'', callback..}) - 没有明确设置JSessionId或任何cookie。

奇怪的部分并非所有cookie密钥都缺失,只有JSESSIONID,这意味着cookie不会被浏览器禁用和设置。

为什么浏览器不发送JSESSIONID?我在firefox / chrome中试过这个。

这种情况只发生在我当地的环境,QA环境中。 webapp的工作正常。

2 个答案:

答案 0 :(得分:4)

我自己想出来......这就是问题所在 http://tomcat.apache.org/migration-7.html#Session_cookie_configuration

感谢所有花时间阅读我的问题的人。

答案 1 :(得分:0)

akjain给出的答案是正确的。但是,如果有人需要代码段,那么它(在web.xml中添加):

<session-config>
   <cookie-config>
       <http-only>false</http-only>
       <secure>false</secure>
   </cookie-config>
</session-config>