我有一個頁面,我想在用戶閒置15分鐘時提醒用戶。
所以我做的是,我設置了一個cookie,在15分鐘後過期,並保持輪詢服務器端頁面,每10分鐘刷新cookie過期時間。
我的問題是,我的ajax調用來更新「cookie過期時間」不會返回任何內容。但它應該在設置cookie後返回「OK」作爲html(這是在python,bottle中完成的)。
如果我在新選項卡中打開此URL,它會延長cookie的過期時間並使我「OK」是正確的。但是當我用Jquery ajax調用它時,它不會返回任何東西。
這裏是Ajax請求的截圖:
正如你可以看到,前兩個請求使用正常的Ajax調用,這回什麼。
最後一個是當我使用「編輯和重新發送」選項 - 它需要類型爲html,但前兩個調用的類型很簡單。
如果我嘗試使用firefox開發人員工具中的「編輯並重新發送」選項,並重新發送請求而不更改任何內容,它將起作用並返回「OK」。
可能是什麼問題?我儘可能在SO和Jquery文檔中找到了所有可能的東西。但似乎沒有任何工作對我來說。這是我擁有的最終代碼。
$.ajax({
timeout: options.AJAXTimeout,
url: options.keepAliveURL,
dataType:"html",
error: function(){
self.failedRequests--;
},
success: function(response){
if($.trim(response) !== options.serverResponseEquals){
self.failedRequests--;
}
},
complete: function(){
if(recurse){
self._startTimer();
}
}
});
網頁,我更新的cookie:
@app.route('/keepalive/', method = 'GET')
@app.route('/keepalive', method = 'GET')
def keepalive():
expire_date = datetime.datetime.utcnow()
expire_date = expire_date + datetime.timedelta(minutes=15)
ses_key=request.get_cookie('session_key')
response.set_cookie("session_key", ses_key, expires=expire_date, path="/")
response.content_type = 'text/html; charset=UTF-8'
return template('<div>{{msg}}</div>', msg = "OK")
說我所說的網址是mysite.com/keepalive/
,這是同一個域名之內。
有人可以幫助我嗎?我在哪裏做錯了?謝謝!!