会话在ajax调用中到期时回发

时间:2010-10-20 12:34:27

标签: jquery ajax session

在我的一个页面上,我有一个div,它使用ajax来异步加载内容。当会话到期时,应该将用户重定向回登录屏幕。但是,当会话到期并且触发了ajax调用时,登录页面将被放入div中。我想要的是将用户重定向回登录屏幕。

3 个答案:

答案 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/