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 设计模式学习 Singleton
Jul 27 Javascript
jquery时间下拉框小例子
Apr 15 Javascript
js控制表单奇偶行样式的简单方法
Jul 31 Javascript
js将当前时间格式转换成时间搓(自写)
Sep 26 Javascript
jquery自定义函数的多种方法
Jan 09 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
Feb 04 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
May 03 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
Jun 12 Javascript
JavaScript常用代码书写规范的超全面总结
Sep 11 Javascript
jquery.form.js异步提交表单详解
Apr 25 jQuery
解决iview多表头动态更改列元素发生的错误的方法
Nov 02 Javascript
nginx部署多个vue项目的方法示例
Sep 06 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/02/03 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
python各种语言间时间的转化实现代码
2016/03/23 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
党建示范点实施方案
2014/03/12 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
铅球加油稿100字
2014/09/26 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
Win2008系统搭建DHCP服务器
2022/06/25 Servers