求助!JFinal拦截器拦截后,重定向到登录页面,无法实现全局刷新

拦截器代码如下:

/**
 * 管理端拦截器
 */
public class AdminAuthInterceptor extends BaseAppInfo implements Interceptor {

    @Override
    public void intercept(Invocation inv) {
        String token = inv.getController().getCookie(f.token);
        /**
         * 1.cookie 如果有访问 更新action_time时间
         * 2.如果action_time时间超过2个小时没有访问,即表示过期,不再查询出来
         */
        Date now = DateUtils.addHours(new Date(), -2);

        Controller controller = inv.getController();

        WwUserToken userToken = WwUserToken.dao.findFirst(use().getSqlPara("adminAuth.intercept1", new Record().set(f.token, token).set(f.action_time, now)));
        if (userToken == null) {

            //inv.getController().redirect("/");

            controller.redirect(controller.getRequest().getContextPath()+"/index");

            return;
        } else {
            userToken.setActionTime(new Date()).update();
        }
        inv.invoke();
    }

}

使用controller.redirect(controller.getRequest().getContextPath()+"/index"); 进行重定向,实现了局部刷新到登录页面,我想要全局刷新,如何实现?

2_1.png

我想实现下面这样的,可以返回到全局的登录页面

3_1.png


评论区

wendell620

2018-01-08 10:20

这个你在登录页面用js去设置,你这个应该是iframe嵌套的

JFinal

2018-01-08 10:56

请求是在 iframe 里发起的,服务端响应数据以后,自然是 iframe 接管了,解决办法是用 js 控制一下,我记得是:
window.parent.location.href= url;

Geek红影

2018-01-08 11:56

@wendell620 好的,谢谢

Geek红影

2018-01-08 11:56

@JFinal 好的,谢谢!

热门反馈

扫码入社