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 相关文章推荐
Jvascript学习实践案例(开发常用)
Jun 25 Javascript
js实现单一html页面两套css切换代码
Apr 11 Javascript
关于js遍历表格的实例
Jul 10 Javascript
代码获取历史上的今天发生的事
Apr 11 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
Oct 14 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
Dec 18 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
Nov 23 Javascript
js replace()去除代码中空格的实例
Feb 14 Javascript
easyui combogrid实现本地模糊搜索过滤多列
May 13 Javascript
详解Vue结合后台的列表增删改案例
Aug 21 Javascript
javascript实现画板功能
Apr 12 Javascript
微信小程序实现转盘抽奖
Sep 21 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中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
基于Jquery的温度计动画效果
2010/06/18 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
自定义vue组件发布到npm的方法
2018/05/09 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
python实现各进制转换的总结大全
2017/06/18 Python
python之django母板页面的使用
2018/07/03 Python
Django Celery异步任务队列的实现
2019/07/24 Python
python将图片转base64,实现前端显示
2020/01/09 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
采购员岗位职责
2013/11/15 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
九年级数学教学反思
2014/02/02 职场文书
企业宣传策划方案
2014/05/29 职场文书
Python+Appium新手教程
2021/04/17 Python
TensorFlow的自动求导原理分析
2021/05/26 Python
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android