大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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账号...