這是我在過去使用的解決方案:
服務器端:
當我檢查,看是否有會話仍然有效,我也留意了「 X-Requested-With「標題,如果你使用jQuery,應該是」XMLHttpRequest「(注意:IE傾向於以小寫字母返回標題名稱,所以請注意這一點)。如果會話確實已經過期,頭存在,而不是使用HTTP重定向,我用一個簡單的JSON對象迴應是這樣的:
{ "SESSION": "EXPIRED" }
客戶端:
在我的onload代碼,我使用jQuery的ajaxComplete事件來檢查會話過期對象的所有傳入請求負載。代碼看起來像這樣:
$(window).ajaxComplete(function(ev, xmlhr, options){
try {
var json = $.parseJSON(xmlhr.responseText);
}
catch(e) {
console.log('Session OK');
return;
}
if ($.isPlainObject(json) && json.SESSION == 'EXPIRED') {
console.log('Session Expired');
//inform the user and window.location them somewhere else
return;
}
console.log('Session OK');
});
您是否嘗試過檢查的權威性餅乾嗎?似乎更容易檢查cookie來檢測用戶是否已登錄。 – user120242 2009-08-13 02:32:34