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

让未登录的用户跳转到登录页面_网页登录后又跳转登录页面开发使用的是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>");

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JavaScript下载本地文件

    JavaScript下载本地文件网上很多关于JS下载文件操作的代码,都过于繁杂,偶然找到这个方法,务必记录一下,太简单实用了/Template/MaterielDictionary.xlsx为文件相对路径,后边参数可不动。window.open(‘/Template/MaterielDictionary.xlsx’,’newwindow’,’height=100,width=400,top=0

  • luajit vs php7,Luajit编译

    luajit vs php7,Luajit编译2、找到VC编译命令行,以VS2019为例,分别位于C:\ProgramData\Microsoft\Windows\StartMenu\Programs\VisualStudio019\VisualStudioTools\VC\x64NativeToolsCommandPromptforVS2019C:\ProgramData\Microsoft\Windows\Star…

  • ETH被冻结_微信冻结显示什么界面

    ETH被冻结_微信冻结显示什么界面如果我们的电脑在启动挖矿软件的时候,发现界面有停顿,Miner都会冻结。有时矿工会随机冻结,直到按下任何键。而我们要做下如下设置则可以解决这个问题。1、cmd命名行界面;2、右击窗口,点属性大力矿工致力于挖矿软件研究,欢迎大家加入群:621159725,一起讨论ETH挖矿。…

    2022年10月15日
  • unity3d 入门[通俗易懂]

    unity3d 入门[通俗易懂]unity关联vsunity安装cinemachineassetstore搜索cinemachine插件,import后确认导入后,可以在packages节点(library/packagecache中代码)找到Cinemachine如果报错(确保没有io错误):Windows>PackageManager>inproject依赖项,删除后,重新安装IO错误…

  • 关于MSHTML_Html格式

    关于MSHTML_Html格式本文翻译自http://msdn.microsoft.com/workshop/browser/mshtml/overview/overview.aspMSDNHome>MSDNLibra

发表回复

您的电子邮箱地址不会被公开。

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