重写ajax方法实现异步请求session过期时跳转登录页面
来源:互联网 发布:java linktag.class 编辑:程序博客网 时间:2024/06/06 01:01
异步ajaxsessionjquery
一般我们会在过滤器里判断登录状态,如果没登录就跳转登录页面,过滤器java核心代码如下:
- UserItem loginUser = (UserItem)request.getSession().getAttribute("loginUser");
- if(loginUser == null) {
- response.sendRedirect("/login.action");
- }
网上一堆庸人给出一堆扯蛋的方法,主要有。
1.返回的字符串附加登录状态;(那么多,你愿意改么,而且前后端都得改,编码的时候还要总去考虑那个状态烦不烦)
2.修改http头信息;(装B深沉型)
3.修改jquery源文件判断;(勉强算个程序员,但是尽力不去动源,性能问题你还得解压再压缩,别人也不一定知道你改过源码)
我的解决方案跟第三种方法思路接近,重写ajax方法实现前置处理,代码如下:
- jQuery(function($){
- // 备份jquery的ajax方法
- var _ajax=$.ajax;
- // 重写ajax方法,先判断登录在执行success函数
- $.ajax=function(opt){
- var _success = opt && opt.success || function(a, b){};
- var _opt = $.extend(opt, {
- success:function(data, textStatus){
- // 如果后台将请求重定向到了登录页,则data里面存放的就是登录页的源码,这里需要找到data是登录页的证据(标记)
- if(data.indexOf('weinianjie') != -1) {
- window.location.href= Globals.ctx + "/login.action";
- return;
- }
- _success(data, textStatus);
- }
- });
- _ajax(_opt);
- };
- });
在登录页面的源码里面,你随便找个地方打个标记然后隐藏掉,比如我的标记就是weinianjie。对于$.get和$.post就不用说了吧,这两个方法都是调用了$.ajax方法的,所以也就自动获取了前置判断能力。
大功告成,注意以上扩展需要放在你的所有ajax请求之前执行。
0 0
- 重写ajax方法实现异步请求session过期时跳转登录页面
- 重写ajax方法实现异步请求session过期时跳转登录页面
- 重写ajax方法实现异步请求session过期时跳转登录页面
- 重写ajax方法实现异步请求session过期时跳转
- 重写ajax方法实现异步请求session过期时跳转登录页
- 重写ajax方法实现请求session过期时跳转登录页面
- Ajax 实现session过期后退出到登录页面
- ajax session过期 页面跳转问题
- 重写ajax实现session超时跳转到登陆页面
- Ajax Session失效跳转登录页面的方法
- ajax请求时登录超时,跳转登录页面
- ajax登录过期跳转
- Ajax请求Session过期简单实现
- 当 jquery 发送 ajax 请求的时候遇到服务端session过期超时返回 302 跳转登陆页面的时候怎么办的处理方法
- 【Java】关于ajax的session过期跳转登录
- easyui+rest服务,ajax请求session过期不跳转问题解决
- 在session过期后如何跳转到登录页面
- session过期后自动跳转到登录页面
- HDU5491 The Next【二进制】
- Leetcode 67:Add Binary
- 安卓控件使用系列15:ImageView适屏和裁剪图片
- HDU 2140 模拟
- LeetCode---Length of Last Word
- 重写ajax方法实现异步请求session过期时跳转登录页面
- JAVA的StringBuffer类
- php yii连接mysql配置扩展
- Linux(Fedora21)安装google chrome浏览器
- IO端口和IO内存的区别及分别使用的函数接口
- 利用DBREF实现MongoDB的引用("外键")
- TL-WR703N刷OpenWrt (by quqi99)
- 数据结构与算法分析(c++版) #13 堆与优先队列
- 如何将几张图片组合成一个动画