前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让未登录的用户跳转到登录页面_网页登录后又跳转登录页面

让未登录的用户跳转到登录页面_网页登录后又跳转登录页面

作者头像
全栈程序员站长
发布2022-09-20 10:53:05
3.6K0
发布2022-09-20 10:53:05
举报
文章被收录于专栏:全栈程序员必看

开发使用的是SpringBoot和Shiro,然后遇到了这个问题,记录一哈。

1.处理ajax异步请求:

  如果不想每个ajax都判断返回数据,然后进行未登录跳转的话,可以修改JQuery的默认设置(complete回调):

代码语言:javascript
复制
            $.ajaxSetup({
                    contentType : "application/x-www-form-urlencoded;charset=utf-8",
                    complete : function(XMLHttpRequest, textStatus) {
                            var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus"); 
                            if (sessionstatus == "timeout") {
                                    alert("登录超时,请重新登录!");
                                    top.location.href="/";
                            }
                            
                            if(XMLHttpRequest.responseText == "{\"access\":\"Not Authenticated\"}"){
                                alert("尚未登录,请重新登录!");
                                top.location.href="/";
                            }
                    }
            });

  上面处理了超时和主动退出的情况,后者是需要后端传对应的数据的,如果不想每个请求都判断是否登录然后响应未登录数据的话,可以在过滤器里统一处理。我用了Shiro所以是在Shiro的基础上添加拦截器,这里遇到一个小问题就是重写的拦截器因为没给Spring管理所以不能自动注入Dao层的接口,要通过应用上下文对象获取。

2.处理非ajax请求

  如果是主页面的请求那么直接跳转或转发,子页面的话可以发一段js来跳转主页面,比如

代码语言:javascript
复制
out.write("<sciprt>top.location.href='/';</script>");

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168083.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档