我搜索了jquery论坛,stackoverflow,谷歌,bing,甚至雅虎没有成功。 每隔10秒我就会尝试通过这个JQuery片段从logservlet servlet加载文本数据: var autorefresh = setInterval(function () { $.ajax({ url : “logservlet?devkey=chat”, success : function(data) { $(“#log_ta”).append(data); } }); }, 10000); 问题是,在服务器端,我没有看到有效的会话,我试图跟踪会话属性。 问题似乎与在JQuery的http请求的标头中缺少“Cookie JSESSIONID = xxxxxxxxxxxxxxxxxxxxxxxxxxx”有关。 我从服务器获得响应头,JSESSIONID总是随每个请求而变化: Server Apache-Coyote/1.1 Set-Cookie JSESSIONID=9EEAFA2A933E7742D8FEDADD5345B76D; Path=/CumulusServer Content-Length 0 Date Fri, 23 Mar 2012 13:02:08 GMT 但是JQuery后来没有使用它,这里是请求头: Host 192.168.1.11:8080 User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept */* […]
我第一眼就惊讶地发现,我对会话cookie在移动设备上的行为方式的看法被现实所推翻。 在普通桌面浏览器上,只要浏览器会话处于活动状态,行为就是存储会话cookie。 如果最后一个浏览器窗口/进程已关闭,则应关闭该会话。 现在,在移动设备上,您几乎不会关闭浏览器应用程序,只需将其发送到后台即可。 我在Android 4的Sony Xperia Ray上发现会话cookie没有过期,即使我清除了浏览器进程。 但是在三星平板设备上它会。 我不知道iOS设备如何以这种方式运行。 这是个问题!? 我该怎么做才能解决这个问题? 现在,我决定让cookie在一天后到期。 但我对此并不满意。 我应该降低寿命吗? 也许到8个小时?