在我的一个页面上,我有一个div,它使用ajax来异步加载内容。当会话到期时,应该将用户重定向回登录屏幕。但是,当会话到期并且触发了ajax调用时,登录页面将被放入div中。我想要的是将用户重定向回登录屏幕。
答案 0 :(得分:2)
解决此问题的一种方法是添加文本以唯一标识登录页面,并在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;
}
});
答案 1 :(得分:1)
我认为扩展标头是关键,登录页面可以发送额外的标头以供xmlhttprequest处理程序捕获。
或者在更懒惰和不可靠的方法中,在登录页面上使用javascript,如果当前页面的位置不是登录页面,则使用javascript重定向(它取决于javascript,但是当你正在制作xhr请求时)。
答案 2 :(得分:0)
向JavaScript发回通知,告知会话不再有效。当JavaScript收到相应的错误时,请将其window.location = http://example.com/
。