jquery フォーラム、stackoverflow、google、bing、さらには yahoo を検索しましたが、成功しませんでした。10 秒ごとに、次の JQuery スニペットを介して logservlet サーブレットからテキスト データをロードしようとしています。
<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 ヘッダーがサーバーに送信されます。
ありがとう。