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+CSS控制打印格式示例介绍
Jan 07 Javascript
浅谈JavaScript事件的属性列表
Mar 01 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
Aug 25 Javascript
JavaScript严格模式详解
Nov 18 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
Jan 21 Javascript
jQuery验证插件validate使用方法详解
Sep 13 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
Jul 20 Javascript
Bootstrap导航简单实现代码
Mar 06 Javascript
jquery.form.js异步提交表单详解
Apr 25 jQuery
vue使用stompjs实现mqtt消息推送通知
Jun 22 Javascript
ng-zorro-antd 入门初体验
Dec 03 Javascript
Vue项目打包部署到apache服务器的方法步骤
Feb 01 Vue.js
学习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
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
python skimage 连通性区域检测方法
2018/06/21 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
英国探险旅游专家:Explore
2018/12/20 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
消防安全承诺书
2014/05/22 职场文书
超市客服工作职责
2014/06/11 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
病假证明模板
2015/06/19 职场文书
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis