大佬教程收集整理的这篇文章主要介绍了JQuery jsession cookie未发送到服务器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <script type="text/javascript"> var autorefresh = seTinterval(function () { $.ajax({ url : "logservlet?devkey=chat",success : function(data) { $("#log_ta").append(data); } }); },10000); </script>
问题是,在服务器端,我没有看到有效的会话,我试图跟踪会话属性.问题似乎与在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 */* Accept-Language en-us,en;q=0.5 Accept-Encoding gzip,deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection keep-alive X-requested-With XMLhttprequest Referer http://192.168.1.11:8080//CumulusServer/
这有什么问题? “$.ajax”调用不会识别会话吗?或者,我是否会错过一些管道代码来在每个ajax请求中手动硬编码JSESSIONID?是这样,这应该怎么样?顺便说一句,当我从网络浏览器调用相同的URL时,JSESSIONID标头被发送到服务器!
谢谢,
D.
解决方案#1: – 在页面加载时手动保存JSESSIONID:
var Session = { id : '${pageContext.session.iD}',user : '${pageContext.request.remoteUser}' }; $(window).load(function () { setCookie('JSESSIONID',Session.id); }); function setCookie(name,value,expires,path,domain,securE) { var cookieString = name + "=" +escape(value) + ( (expires) ? ";expires=" + expires.toGMTString() : "") + ( (path) ? ";path=" + path : "") + ( (domain) ? ";domain=" + domain : "") + ( (securE) ? ";secure" : ""); document.cookie = cookieString; }
这工作正常,JSESSIONID相应地在下一个ajax请求中发送.
解决方案#2: – 在servlet doGet()方法中添加“text / plain”mime类型.
最初在我的测试中,我根本没有设置任何内容类型.在我意识到JQuery默认需要XML响应之后,我改变了我的服务器doGet()方法来显式设置内容类型,如下所示:
resp.setContentType( “text / plain的”);
现在,ajax调用工作正常,实际上不需要手动cookie管理.我没有解释为什么解决方案#2有效,但确实如此.
谢谢,D.
以上是大佬教程为你收集整理的JQuery jsession cookie未发送到服务器全部内容,希望文章能够帮你解决JQuery jsession cookie未发送到服务器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。