今天的任务是处理ajax请求session超时,如果session过期需要跳转到登录页面。
如果为每一个ajax请求都写上处理session超时的处理代码,太麻烦了。就算是写到公共方法里面,在每一个ajax请求的处理函数里引用,也是非常不保险的,万一有其他人或者新人写ajax请求,并没有加上这段公共代码,就会漏掉。
所以最好的方法是重写、扩展ajax方法,把异常集中处理。
在网上查到一个可行的方法,重写ajax,扩展success方法。代码如下:
jQuery(function($){
var _ajax=$.ajax; // 备份jquery的ajax方法
$.ajax=function(opt){
var _success = opt && opt.success || function(a, b){}; //获取ajax请求参数中的success方法;
var _opt = $.extend(opt, {
success:function(data, textStatus){
// 如果后台将请求重定向到了登录页,则data里面存放的就是登录页的源码,这里需要找到data是登录页的标记
//(这里是在文件中加了“weinianjie”然后注释掉。)
if(data.indexOf('weinianjie') != -1) {
window.location.href= Globals.ctx + "/login