jQuery ajax全局函数处理session过期后的ajax跳转问题

前端之家收集整理的这篇文章主要介绍了jQuery ajax全局函数处理session过期后的ajax跳转问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

做web常常需要考虑session过期的问题,session过期就让页面跳转登录界面去,但是存在这样一个问题,当页面过期后,用户请求后台的方式有两种:传统方式和异步请求方式,传统方式倒好解决,请求到后台拦截到过期的操作,直接跳转,但是异步请求不会刷新整个页面,因此对session过期的处理也不能按往常的方式,需要另外的操作。

具体思路:拦截器中判断是否为ajax请求 —— 是ajax请求则返回一个消息 ——页面添加一个全局的ajax处理事件,对消息进行判断,如果是报告session过期,则location到登录页面

第一步,拦截器判断是否为ajax请求:

前台 PrintWriter printWriter = response.getWriter(); printWriter.print("{sessionState:timeout}"); printWriter.flush(); printWriter.close(); }else{ //不是ajax请求,则直接@R_431_404@面 }

拦截器或者过滤器:

页面 } } });

这是一个基于jQuery的异步处理机制,完整代码我没写,上次在公司写的代码,带不出来,文章里的代码有些还是在网上找来粘进去的,凌晨都过了半小时了,太困了,记录下思路而已。

PS:ajax 操作全局监测,用户session失效

方法 var _ajax = $.ajax; // 重写ajax方法,先判断登录在执行success函数 $.ajax = function (opt) { var _success = opt && opt.success || function (a,b) { }; var _opt = $.extend(opt,{ success: function (data,textStatus) { try { if (data.sessionstatus == false) { //用户失效进行操作 //return; } } catch (e) { } _success(data,textStatus); } }); _ajax(_opt); }; });
原文链接:https://www.f2er.com/ajax/48178.html

猜你在找的Ajax相关文章