根據此示例http://tomcat.apache.org/tomcat-7.0-doc/aio.html創建了CometServlet。然後我嘗試使用JQuery從它獲取數據。代碼如下:在Tomcat服務器上使用JQuery進行長輪詢的問題
$(function() {
$.longPoll = function(url, success, error) {
$.ajax({
url : url,
success: function(data, status) {
$.longPoll(url, success, error);
if (success) {
success(data, status);
}
},
error: function(data, status) {
$.longPoll(url, success, error);
if (error) {
error(data, status);
}
}
});
};
$.longPoll("./comet", "", function(data, status) {
alert("success:" + data);
}, function(data, status) {
alert("error:" + data);
});
});
的問題是,成功的功能不會觸發(即使我可以在該數據來自Firebug的控制檯中看到)。我認爲這是因爲服務器沒有關閉響應編寫器,但它是長輪詢的目標:)
有沒有人有任何想法如何解決?
感謝您的回答! 我添加了:
beforeSend : function(xhr) { xhr._onreadystatechange = xhr.onreadystatechange; xhr.onreadystatechange = function() { if (xhr.readyState === 3) { alert(this.responseText); } else { xhr._onreadystatechange(); } }; xhr.onprogress = xhr.onreadystatechange; }
我的$ .ajax()請求,但沒有任何更改。對不起,我無法格式化代碼。 – Pavel 2010-08-31 14:29:13