jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法


Posted in Javascript onJanuary 19, 2016

废话不多说了,直接给大家贴代码了。

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 ((typeof data) == 'string' && data.indexOf('shangjiaAjaxExtend') != -1) {
window.location.href = 'http://' + window.location.host + '/S/BusiLogin/Index';
return;
} else {
_success(data, textStatus);
}
}
});
return _ajax(_opt);
};
});

重写原理为:由于闭包函数先于页面上script加载,所以在此可以直接复写$.ajax方法.

重点是红色部分内容一定要retrun 否则在使用load方法加载页面时报错 “Uncaught TypeError: Cannot call method 'done' of undefined。”

Javascript 相关文章推荐
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
Feb 09 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
Jul 10 Javascript
基于JQuery的6个Tab选项卡插件
Sep 03 Javascript
javascript中in运算符用法分析
Apr 28 Javascript
js中 计算两个日期间的工作日的简单实例
Aug 08 Javascript
利用Node.js对文件进行重命名
Mar 12 Javascript
Node.js中 __dirname 的使用介绍
Jun 19 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
Jul 13 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
Jul 13 Javascript
解析vue中的$mount
Dec 21 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
Jul 19 Javascript
学习JavaScript设计模式之享元模式
Jan 18 #Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 #Javascript
学习JavaScript设计模式之责任链模式
Jan 18 #Javascript
深入学习jQuery Validate表单验证(二)
Jan 18 #Javascript
深入学习jQuery Validate表单验证
Jan 18 #Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
Jan 18 #Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
Dec 13 #Javascript
You might like
php 无限级缓存的类的扩展
2009/03/16 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
Extjs入门之动态加载树代码
2010/04/09 Javascript
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
python编程开发之日期操作实例分析
2015/11/13 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
Python实现京东抢秒杀功能
2021/01/25 Python
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
大学学年自我鉴定
2013/10/28 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
爱牙日活动总结
2014/08/29 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
企业党建工作总结2015
2015/05/26 职场文书
法制工作总结2015
2015/07/23 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL
springcloud整合seata
2022/05/20 Java/Android