ajax请求 session过期跳转首页的两种处理方式
在处理session过期跳转首页时遇到了一些困难,经过百度发现了大致两种方法,在这里进行一下整理:
1、直接重写jquery ajax方法:
(function($){ //备份jquery的ajax方法 var _ajax=$.ajax; //重写jquery的ajax方法 $.ajax=function(opt){ //备份opt中error和success方法 var fn = { error:function(XMLHttpRequest, textStatus, errorThrown){}, success:function(data, textStatus){alert(textStatus);//在这里进行跳转} } if(opt.error){ fn.error=opt.error; } if(opt.success){ fn.success=opt.success; } //扩展增强处理 var _opt = $.extend(opt,{ error:function(XMLHttpRequest, textStatus, errorThrown){ //错误方法增强处理 fn.error(XMLHttpRequest, textStatus, errorThrown); }, success:function(data, textStatus){ //成功回调方法增强处理 fn.success(data, textStatus); } }); _ajax(_opt); };
})(jQuery);
这种方法与jquery.min.js库有冲突,使用时一定要注意!
2、基于 ajaxSetup来进行控制:
在登录的过滤器或者拦截器中添加一下代码:
if("XMLHttpRequest".equals(((HttpServletRequest) request).getHeader("X-Requested-With"))){ ((HttpServletResponse) response).setHeader("sessionstatus", "timeout"); ((HttpServletResponse) response).setHeader("redirectUrl", ((HttpServletRequest) request).getContextPath() + "/login.jsp"); } else { ((HttpServletResponse) response).sendRedirect(path2);} // 如果session为空表示用户没有登录就重定向到login.jsp页面 return;
js中添加:
//全局的AJAX访问,处理AJAX清求时SESSION超时
if(typeof($)!="undefined"){ $.ajaxSetup({ contentType : "application/x-www-form-urlencoded;charset=utf-8", complete : function(XMLHttpRequest, textStatus) { // 通过XMLHttpRequest取得响应头,sessionstatus var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus"); if (sessionstatus == "timeout") { // 这里怎么处理在你,这里跳转的登录页面 window.location.replace(XMLHttpRequest.getResponseHeader("redirectUrl")); } } });
}
jquery不推荐使用ajaxSetup容易影响其他插件ajax发生冲突,以上两种方式在使用过程中一定要谨慎!
ajax请求 session过期跳转首页的两种处理方式相关推荐
- php ajax session失效,PHP中解决ajax请求session过期退出登录问题
1.session过期,如果直接是url请求,或者用户在打开的系统页面中直接清除缓存及cookie信息,可直接在php的入口文件中调用以下封装的方法,进行session信息判断以及页面的跳转,如: i ...
- shiro处理ajax请求未登录,shiro处理ajax请求session失效跳转
最近在学习shiro时遇到一个问题,在ajax请求时,若是session失效时,没法正确的跳转登陆页面.在以前的项目中处理的方法是经过自定义一个过滤器来处理,session失效时返回错误码来处理.但由 ...
- ajax类型的区别,ajax请求的类型 有post get 请问两种有何区别?
1. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML ...
- Ajax请求session超时解决办法
Ajax请求session超时解决办法 问题描述 通过ajax发送请求,被后台过滤器或者拦截器拦截的时候,如果session超时,不会直接跳转到登录页面. 解决方案 在过滤器或者拦截器中设置respo ...
- session过期跳转登录页面
2019独角兽企业重金招聘Python工程师标准>>> 项目需要做一个自动登出的功能,查询了网上的资料,一开始准备用session监听做,按照下面方式配置监听器 1.在项目的web. ...
- Shiro session过期跳转到登录页面问题
Shiro session过期跳转到登录页面问题 shrio的session过期后(工程重启或者用户长时间没进行任何操作),当客户端再次向服务端发起请求时,shrio会判断用户没有登录授权,然后对请求 ...
- Ajax请求session超时处理流程(DWZ)
DWZ-Java框架Ajax请求session超时处理思路: 1)SessionValidateFilter统一验证session是否超时 2)SessionValidateFilte ...
- ajax去掉session,PHP中解决ajax请求session过时退出登陆问题
一.session过时,若是直接是url请求,或者用户在打开的系统页面中直接清除缓存及cookie信息,可直接在php的入口文件中调用如下封装的方法,进行session信息判断以及页面的跳转,如: p ...
- 如何在请求转发的时候对url解码_Java技术分享:Forward和Redirect这两种转发方式的区别...
用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的.根据转发方式的不同,可以区分为直接请求转发 ...
最新文章
- 在linux批量删除多级目录下同一格式的文件
- 菜鸟刚入手Python第一天
- postgreSQl pathman 用法语句总结
- LIMIT M,N分页性能优化方案
- 通信技术计算机通信方向专业,江西科技学院2014年招生通信工程(计算机通信方向)专业介绍...
- pads中如何设置等长_如何在SQL Server中设置扩展,监控系统性能
- fragment photoshop_史上最接地气的Photoshop?谈PS 2021的黑科技 - Adobe
- 用 Webpack 解决应用性能问题
- python画柱状图-python 使用 matplotlib.pyplot来画柱状图和饼图
- ViewModel中C# Property自动添加OnPropertyChanged处理的小工具, 以及相应Python知识点...
- 程序员一毕业就年薪 110 万竟然是靠……
- VS2010 SP1 编译QT4.8.0 x64版本
- 利用DRONEKIT-SITL + MAVPROXY + QGroundControl模拟飞行
- kata-container初探
- Ubuntu中LightDM是什么(转)
- 苹果付费app共享公众号_【苹果iOS付费游戏应用帐号分享】新增一款25元iOS游戏应用共享帐号...
- 网络软件-管理网络设备和组件
- 为什么高质量计算机书籍几乎都是外国人写的?
- MySQL的between语句和in语句的区别
- 【原创】简单介绍 Windows XP 中的chkdsk(checkdisk磁盘检查)工具
热门文章
- SpringBoot中属性映射之开启驼峰命名
- 你见过的最全vim编辑器常用操作总结(我是困不住的野马,却想做你怀里的猫)
- 汇编计算机钢琴流程图,键盘钢琴汇编语言课程设计.docx
- U盘格式化不了怎么办?
- ElasticSearch 极简入门 CRUD
- 编译Zookeeper源码以及使用
- layui中使用lay-verify进行条件校验
- Windows重启,自动重启Nginx,JAVA,VueSSR服务
- 本周大新闻|Quest Pro降价至1099美元,传苹果AIGC或用于XR内容生成
- 计算机电工电子,《电工电子技术练习题(计算机).doc