【发布时间】:2012-04-08 03:20:47
【问题描述】:
我搜索过 jquery 论坛、stackoverflow、google、bing,甚至 yahoo,但都没有成功。 每 10 秒我试图通过这个 JQuery sn-p 从 logservlet servlet 加载文本数据:
<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?是这样,这应该是什么样子?顺便说一句,当我从 Web 浏览器调用相同的 url 时,JSESSIONID 标头被发送到服务器!
谢谢, D.
【问题讨论】:
标签: jquery session cookies jsessionid