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 相关文章推荐
JavaScript 常用函数
Dec 30 Javascript
判断一个对象是否为jquery对象的方法
Mar 12 Javascript
Area 区域实现post提交数据的js写法
Apr 22 Javascript
JavaScript动态修改网页元素内容的方法
Mar 21 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
xcode中获取js文件的路径方法(推荐)
Nov 05 Javascript
详解JS对象封装的常用方式
Dec 30 Javascript
快速掌握jQuery插件开发
Jan 19 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
JS实现随机生成10个手机号的方法示例
Dec 07 Javascript
react基本安装与测试示例
Apr 27 Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 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
星际流派综述
2020/03/04 星际争霸
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
JQuery toggle使用分析
2009/11/16 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
python读写文件write和flush的实现方式
2020/02/21 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
机械制造毕业生求职信
2014/03/03 职场文书
家长学校实施方案
2014/03/15 职场文书
课外活动总结范文
2014/07/09 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript