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 new 需不需要继续使用
Jul 02 Javascript
Javascript JSQL,SQL无处不在,
May 05 Javascript
Dom 学习总结以及实例的使用介绍
Apr 24 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
Jun 14 Javascript
vue props传值失败 输出undefined的解决方法
Sep 11 Javascript
Angular 实现输入框中显示文章标签的实例代码
Nov 07 Javascript
JS立即执行函数功能与用法分析
Jan 15 Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
JS实现马赛克图片效果完整示例
Apr 13 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
Jun 10 Javascript
Moment.js实现多个同时倒计时
Aug 26 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中的正规表达式(二)
2006/10/09 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
python清除字符串里非数字字符的方法
2015/07/02 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
scrapy爬虫完整实例
2018/01/25 Python
详解python的四种内置数据结构
2019/03/19 Python
python读取mysql数据绘制条形图
2020/03/25 Python
结束运行python的方法
2020/06/16 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
python使用smtplib模块发送邮件
2020/12/17 Python
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
家电业务员岗位职责
2014/03/10 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
村官个人总结范文
2015/03/03 职场文书
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL