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精华代码集
Jan 24 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
Apr 02 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
Aug 26 Javascript
javascript处理表单示例(javascript提交表单)
Apr 28 Javascript
javascript中Number的方法小结
Nov 21 Javascript
Node实战之不同环境下配置文件使用教程
Jan 02 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
Mar 23 Javascript
vue-cli V3.0版本的使用详解
Oct 24 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
Sep 15 Javascript
H5实现手机拍照和选择上传功能
Dec 18 Javascript
深入理解Antd-Select组件的用法
Feb 25 Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 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
实用函数8
2007/11/08 PHP
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
php如何获取Http请求
2020/04/30 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
jquery 使用简明教程
2014/03/05 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
python获取网页状态码示例
2014/03/30 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
Python实现的栈(Stack)
2018/01/26 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python切片工具pillow用法示例
2018/03/30 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
如何用python处理excel表格
2020/06/09 Python
通过代码实例了解Python异常本质
2020/09/16 Python
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
公司庆典活动邀请函
2014/01/09 职场文书
高中地理教学反思
2014/01/29 职场文书
工人先进事迹材料
2014/12/26 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android