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 相关文章推荐
网页图片延时加载的js代码
Apr 22 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
Sep 19 Javascript
Jquery 表单验证类介绍与实例
Jun 09 Javascript
固定网页背景图同时保持图片比例的思路代码
Aug 15 Javascript
分享12个实用的jQuery代码片段
Mar 09 Javascript
js原生跨域_用script标签的简单实现
Sep 24 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
js移动端事件基础及常用事件库详解
Aug 15 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 Javascript
微信小程序日历效果
Dec 29 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
Jun 18 jQuery
JS实现悬浮球只在一侧滑动并且是横屏状态下
Aug 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使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
python之wxPython菜单使用详解
2014/09/28 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
详解python中的index函数用法
2019/08/06 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
成人大专生实习期的自我评价
2013/10/02 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
公司前台辞职报告
2014/01/19 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
追悼词范文大全
2015/06/23 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers