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 相关文章推荐
utf-8编码引起js输出中文乱码的解决办法
Jun 23 Javascript
JQuery触发radio或checkbox的change事件
Dec 18 Javascript
鼠标滚轴控制文本框值的JS代码
Nov 19 Javascript
js复制网页内容并兼容各主流浏览器的代码
Dec 17 Javascript
用JS在浏览器中创建下载文件
Mar 05 Javascript
JQuery实现动态表格点击按钮表格增加一行
Aug 24 Javascript
js实现模糊匹配功能
Feb 15 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
Aug 16 Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 Javascript
js prototype深入理解及应用实例分析
Nov 25 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
Aug 12 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/06/09 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
js实现购物车功能
2018/06/12 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
详解supervisor使用教程
2017/11/21 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
Python2与Python3的区别点整理
2019/12/12 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
市场营销管理毕业生自荐信
2014/03/03 职场文书
项目合作协议书范本
2014/04/16 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
防溺水主题班会教案
2015/08/12 职场文书
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS