`

重写Jquery的$.ajax方法

 
阅读更多
(function($){
	//备份jquery的ajax方法
	var _ajax=$.ajax;
	
	//重写jquery的ajax方法
	$.ajax=function(opt){
		//备份opt中error和success方法
		var fn = {
			error:function(XMLHttpRequest, textStatus, errorThrown){},
			success:function(data, textStatus){}
		}
		if(opt.error){
			fn.error=opt.error;
		}
		if(opt.success){
			fn.success=opt.success;
		}
		
		//扩展增强处理
		var _opt = $.extend(opt,{
			error:function(XMLHttpRequest, textStatus, errorThrown){
				//错误方法增强处理
				
				fn.error(XMLHttpRequest, textStatus, errorThrown);
			},
			success:function(data, textStatus){
				//成功回调方法增强处理
				
				fn.success(data, textStatus);
			}
		});
		_ajax(_opt);
	};
})(jQuery);

 由于闭包函数先于页面上script加载,所以在此可以直接复写$.ajax方法.

分享到:
评论
3 楼 Hope---------- 2017-04-14  
转载的http://blog.csdn.net/qq_16313365/article/details/51078252
2 楼 rogerer 2014-03-05  
_ajax(_opt);  

需要返回,否则在使用$.load的时候会报错:Uncaught TypeError: Cannot call method 'done' of undefined。
return _ajax(_opt);
1 楼 waykingeye 2013-08-14  
不知道楼主有没有重写 其他插件的方法,例如:
			//重写ajaxForm方法
			var _ajaxSubmit = jQuery.fn.ajaxSubmit;
			alert("--"+jQuery(this).attr);
			jQuery.fn.ajaxSubmit = function(opt) {alert(22);
				_ajaxSubmit(opt);
			};
			})(jQuery);

这里远ajaxSubmit方法里面有使用 this.attr
这样重写传递_opt后 this.attr会找不到,猜想是this丢失了  没有给他重写传递,
不知道应该怎么解决呢?

相关推荐

    重写jquery的ajax

    ajax重写,重写jquery的ajax方法,自动增加加载状态,跨域修改等

    Ajax全局加载框(Loading效果)的配置

    在Ajax进行后台数据请求的过程中,我们有时候会希望用户能知道页面后台还在做一些事情,这时候就需要给用户一个非常明确的提示,也就是我们所谓的进度条 ...$.ajaxSetup({ beforeSend: function () { //ajax请求之前 }

    jQuery实现监控页面所有ajax请求的方法

    总结来说,通过重写`$.ajax`并维护一个计数器,我们可以轻松监控页面上所有的jQuery AJAX请求。这为我们提供了更大的灵活性,无论是跟踪所有请求,还是仅关注特定URL的请求,都可以轻松实现。同时,jQuery提供的各种...

    ajax and jQuery

    2. **发送请求**:使用jQuery的$.get()或$.post()方法发送请求。 3. **后端验证**:服务器接收到请求后,查询数据库判断用户名是否已存在。 4. **响应处理**:根据服务器返回的结果,在前端展示校验结果。 #### 五...

    最新jquery.1.8.1

    $.sub:该方法是在jQuery 1.5中引入的,但是被证明不是很有用,将被移到jQuery 1.9兼容性插件中。 全局AJAX事件:一些事件(如ajaxStart)可以被附加到不在一个文档中的任何元素中,这将导致效率低下。在1.9中,...

    jQuery.switchPage.js:基于jQuery的全屏切换插件

    jQuery.switchPage.js 知识点 ...例如 $.Ajax() 、 $.extend() 方法 二、对象级别组件开发:即挂在jQuery原型下的方法,这样通过选择器获取的jQuery对象实例也能共享该方法,也称为动态方法。 $.fn.foo

    ajax 操作全局监测,用户session失效的解决方法

    var _ajax = $.ajax; // 重写ajax方法,先判断登录在执行success函数 $.ajax = function (opt) { var _success = opt && opt.success || function (a, b) { }; var _opt = $.extend(opt, { success: function (data,...

    javascript重写alert方法的实例代码.docx

    if ($.alerts.dialogClass) $("#popup_container").addClass($.alerts.dialogClass); var pos = ($.browser.msie && parseInt($.browser.version) == 6) ? 'absolute' : 'fixed'; $("#popup_container").css({ ...

    jquery ajax servlet json简单demo

    在jQuery中,$.ajax()方法是进行AJAX请求的核心函数,它可以实现异步数据获取与页面更新。 【AJAX使用】在jQuery中,使用AJAX通常包括以下步骤: 1. 引入jQuery库:确保HTML文件中包含了jQuery库,通常通过CDN链接...

    bui重写 jquery

    5. Ajax交互:`$.ajax()`, `$.get()`, `$.post()`等函数让异步数据请求变得简单。 6. 插件扩展:jQuery的插件机制允许开发者自定义功能,扩展jQuery的功能。 通过这次重写,BUI将更加轻量化,更适合那些习惯使用...

    JQuery 1.4库包及中文API.rar

    - **$.fn.extend()**:扩展jQuery对象,增加新的方法或重写已有的方法。 - **$.get() 和 $.post()**:简化的GET和POST AJAX请求。 - **$.getJSON()**:专门用于获取JSON数据的AJAX方法。 - **$.grep()**:根据指定...

    jquery插件实现的asp.net自动完成控件

    数据可以通过AJAX请求获取,使用jQuery的`$.ajax`或`$.getJSON`方法。 例如,假设我们有一个名为`AutoCompleteService.asmx`的Web服务,其方法`GetSuggestions`接收一个输入参数并返回JSON数组: ```javascript $....

    jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法

    在jQuery中,有时候我们需要对默认的`ajax`方法进行扩展或重写,以满足特定的业务需求,例如在用户无权限或未登录时进行处理。本篇将详细讲解如何重写`ajax`提交并添加权限判断,以及解决在使用`load`方法时可能出现...

    jquery重写window alert 信息提示

    jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理、动画制作以及Ajax交互。在`jquery-latest.js`和`jquery-latest.pack.js`中,包含了最新的jQuery库,这两个文件都是压缩版,`pack.js`是进一步压缩过...

    最新JQuery版本1.8

    $.sub:该方法是在jQuery 1.5中引入的,但是被证明不是很有用,将被移到jQuery 1.9兼容性插件中。 全局AJAX事件:一些事件(如ajaxStart)可以被附加到不在一个文档中的任何元素中,这将导致效率低下。在1.9中,Ajax...

    Js拦截全局ajax请求

    在JavaScript中,最常用的库是jQuery的$.ajax()方法,以及现代浏览器原生支持的fetch API。除此之外,还有许多其他库,如axios和superagent,它们提供了类似的接口。 为了全局拦截Ajax请求,我们需要关注两个关键点...

    Ajax和servlet数据交互小实例

    - **发送请求**:使用jQuery的Ajax方法,如`$.ajax()`,设置URL指向Servlet的路径,指定请求类型(GET或POST),以及要发送的数据。 - **接收请求**:在Servlet中,重写`doGet()`或`doPost()`方法,通过`request`...

    ajax 模拟购物车加入货物并

    使用`$.ajax()`或`$.post()`(jQuery提供的便捷方法)发送POST请求到Servlet,将用户选择的商品信息(如商品ID、数量等)发送到服务器。例如: ```javascript $.ajax({ url: '/add-to-basket', type: 'POST', ...

    JqueryServlet例子导入可用

    2. **jQuery Ajax调用**:在事件处理函数中,使用jQuery的$.ajax()方法,设置URL为Servlet的访问路径,定义请求类型(GET或POST),可能还有额外的请求参数。 3. **发送请求**:jQuery发送Ajax请求到Servlet,请求中...

    ecshop和jquery冲突的解决方法

    假设Ecshop中有一个名为`$.fn`的方法用于实现某个特定功能,而在引入jQuery后,该方法被覆盖或者发生了作用域冲突,从而使得原本正常运行的功能无法正常使用。 ### 四、解决Ecshop与jQuery冲突的方法 为了有效地...

Global site tag (gtag.js) - Google Analytics