【发布时间】:2011-04-28 00:40:44
【问题描述】:
在我的一个页面上,我有一个使用 ajax 异步加载内容的 div。当会话到期时,用户应该被重定向回登录屏幕。但是,当会话到期并触发 ajax 调用时,登录页面将放入 div 中。我想要的是将用户重定向回登录屏幕。
【问题讨论】:
在我的一个页面上,我有一个使用 ajax 异步加载内容的 div。当会话到期时,用户应该被重定向回登录屏幕。但是,当会话到期并触发 ajax 调用时,登录页面将放入 div 中。我想要的是将用户重定向回登录屏幕。
【问题讨论】:
解决这个问题的一种方法是添加一个文本来唯一标识登录页面,并在 AJAX 回调中使用它来再次重定向到登录页面。这是使用jQuery global callbacks....的示例代码。
$(document).bind("ajaxComplete", function(event, response, ajaxOptions) {
if (response.status == 200 && response.responseText.match(/LOGIN_PAGE_UNIQUE_KEY/)) {
self.location = "/web/login?timeout=1";
return false;
}
});
【讨论】:
我认为扩展头是关键,登录页面可以发送额外的头以被 xmlhttprequest 处理程序捕获。
或者在更懒惰和不可靠的方法中,在登录页面上使用 javascript,如果当前页面的位置不是登录页面,则使用 javascript 重定向(它依赖于 javascript,但因为您正在发出 xhr 请求)。
【讨论】:
将会话不再有效的通知发送回 JavaScript。当 JavaScript 得到相应的错误时,将其发送到window.location = @987654321@。
【讨论】: