0

问题如下。当用户单击链接时,我将数据加载到 div 中,但是当用户的会话过期时,我需要将他重定向到登录页面,或者如果是外部错误,我需要将用户重定向到错误页面。问题是,例如,如果我的拦截器看到用户不再处于会话中并尝试将他重定向到登录页面,则登录页面会再次加载到 div 中。页面上的其他元素仍然存在。如何在没有 JavaScript 的情况下重新加载页面?我的意思是直接来自struts.xml。

4

1 回答 1

0

无论是否是新会话,您都需要将其发送到浏览器。

单程。

在您的拦截器中添加一个标头以指示它是否是一个新会话。然后,如果您使用的是 jquery,您可以绑定 ajax 完成并检查其新会话的属性的标题。最后在新会话中,执行 location.reload。

你的 jquery ajax 看起来像这样

    jQuery(document).ajaxComplete(function(e, xhr, settings) {

        var status = xhr.status;
        if(status == 200 ){
            var isAuth = xhr.getResponseHeader('_isnewsession');

            if((isAuth == '1')){
                alert('Your Session has timed out!');
                location.reload();
            }
        }
    });

那有意义吗?

于 2013-11-06T17:21:00.577 回答