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

让未登录的用户跳转到登录页面_网页登录后又跳转登录页面开发使用的是SpringBoot和Shiro,然后遇到了这个问题,记录一哈。1.处理ajax异步请求:如果不想每个ajax都判断返回数据,然后进行未登录跳转的话,可以修改JQuery的默认设置(c

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

1.处理ajax异步请求:

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

            $.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来跳转主页面,比如

out.write("<sciprt>top.location.href='/';</script>");

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • iOS 强大第三方资源库

    iOS 强大第三方资源库Github用法git-recipesGitrecipesinChinese.高质量的Git中文教程.lark怎样在Github上面贡献代码my-git有关git的学习资料gitignore非常赞有用的.gitignore模板集合(忽略上传的文件集合),包含了各种语言.完整App@open-source-ios-apps-iOS开源App集合,分:swift与Objec…

    2022年6月9日
    109
  • 2021-07-22MATLAB基于元胞自动机模型的传染病扩散模型

    2021-07-22MATLAB基于元胞自动机模型的传染病扩散模型MATLAB 基于元胞自动机模型的传染病扩散模型基本思路 地图矩阵可以分为两类 一类是健康人矩阵 一类是感染者矩阵 健康人感染后则落入感染者矩阵 感染者康复后则升上健康人矩阵通过建立三维矩阵 Track 在 x 轴和 y 轴之上加入时间轴形成三维 来追踪已感染的人的感染时间 从而判定康复 通过设置 NewMap 和 NewPatientMa 两个过渡矩阵来更新每次的随机移动 防止先更新的人在遍历过程中再次被选中导致一个回合内多次移动 将地图分为两种 一种是健康人地图 一种是病人地图 多个人可以在同一个点

    2025年11月5日
    4
  • Android之ProgressDialog的使用

    Android之ProgressDialog的使用ProgressDialog继承自AlertDialog,AlertDialog继承自Dialog,实现DialogInterface接口。ProgressDialog的创建方式有两种,一种是new

    2022年7月1日
    21
  • Kong网关插件使用「建议收藏」

    Kong网关插件使用「建议收藏」转载李亚飞大佬的文章:https://www.lyafei.com/授权验证在接口请求中权限验证是一个恒久不变的话题,Kong自带了6种加密方式先创建一个BasicAuth,直接确认即可此时页面访问http://dev.lyafei.com:8000/dev会弹出登录框,让你输入用户名密码,若取消则会返回{“message”:“Unauthorized”},若输入用户名和密码后确认会返回{“message”:“Invalidauthenticationcredential.

    2025年10月23日
    6
  • python删除列表最大值_每个元素占4个存储单元

    python删除列表最大值_每个元素占4个存储单元Algs4-2.4.12大最找出最大元素少量插入与删除最大元素用哪种数组结构实现优先队列更有效…

    2022年4月20日
    174
  • oracle split 分割字符串,Oracle字符串分割Split[通俗易懂]

    oracle split 分割字符串,Oracle字符串分割Split[通俗易懂]Oracle字符串分割Split一、创建数组类型Sql代码CREATEORREPLACETYPET_RET_TABLEISTABLEOFVARCHAR2(512)二、创建字符串分割函数Sql代码CREATEORREPLACEFUNCTIONF_SPLIT_STRING(AS_STRVARCHAR2,AS_SPLITVARCHAR2)RETURNT_RET_TABL…

    2022年6月4日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号