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 相关文章推荐
jquery 取子节点及当前节点属性值
Jul 25 Javascript
2则自己编写的jQuery特效分享
Feb 26 Javascript
实例讲解避免javascript冲突的方法
Jan 03 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
jQuery给指定的table动态添加删除行的操作方法
Oct 12 Javascript
bootstrap table分页模板和获取表中的ID方法
Jan 10 Javascript
详解EasyUi控件中的Datagrid
Aug 23 Javascript
Node.js学习之地址解析模块URL的使用详解
Sep 28 Javascript
原生js封装运动框架的示例讲解
Oct 01 Javascript
React.js绑定this的5种方法(小结)
Jun 05 Javascript
js实现同一个页面,多个enter事件绑定的示例
Oct 10 Javascript
使用JS监听键盘按下事件(keydown event)
Nov 07 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数字转汉字代码(算法)
2011/10/08 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
Python列表生成器的循环技巧分享
2015/03/06 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
python多线程并发及测试框架案例
2019/10/15 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
比较基础的php面试题及答案-填空题
2014/04/26 面试题
摄影实习自我鉴定
2013/09/20 职场文书
安全生产承诺书
2014/03/26 职场文书
股权投资意向书
2014/04/01 职场文书
创建青年文明号材料
2014/05/09 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
MySQL时区造成时差问题
2022/04/13 MySQL