这是我在过去使用的解决方案:
服务器端:
当我检查,看是否有会话仍然有效,我也留意了“ 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