使用重写的$.ajax()统一错误处理

在jquery开发中,我们经常会用到类似如下的代码:

$.ajax({
    url : ‘...‘,
    type : ‘POST‘,
    data : {},
    success : function(data){
        //执行状态是200时候调用
    },
    error : function(XMLHttpRequest, msg, e){
        //执行状态是非200时调用
    },
    complete : function(httpRequest, status){
        //完成了一次请求时调用
    }
});

其实往往除了url,data,success之外,其他的代码都是重复的

这时候我们可以利用自己重写的ajax函数来规避掉这些重复代码:

(function($){
    //首先备份一个原始的jquery.ajax()函数
    var _ajax = $.ajax;
    //重写jquery.ajax()函数
    $.ajax = function(options){
        options.type = ‘POST‘;
        options.error = function(XMLHttpRequest, msg, e){
            //统一错误处理
        },
        complete : function(httpRequest, status){
            //统一的结束状态显示
            //可以结合一个gif做进度显示
        }
    }
})(JQuery);

有了以上的定义,我们调用时候只需要:

$.ajax({
    url : ‘...‘,
    data : {},
    success : function(data){
        //只需在此处理正常情况
    }
});

这样我们可以把错误统一处理,也可以在在complete 里面做一个‘loading…’的动态显示,

告诉用户我们在进行后台处理,也可以防止用户重复点击(关于‘loading…’的代码,可以参考下一篇)。

版权声明:本文为博主原创文章,转载的时候请注明出处。

时间: 2024-08-03 07:28:25

使用重写的$.ajax()统一错误处理的相关文章

【转】JQuery.Ajax之错误调试帮助信息

下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET".注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持. timeout Number 设置请求超时时间(毫秒).此设置将覆盖全局设置. async

[转]JQuery.Ajax之错误调试帮助信息

下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET".注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持. timeout Number 设置请求超时时间(毫秒).此设置将覆盖全局设置. async

JQuery.Ajax之错误调试帮助信息

原文:http://mybloggers.blog.163.com/blog/static/1003865092010111631741468/ 下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET".注意:其它 HTTP 请求方法,如 PUT

使用重写的$.ajax()实现后台处理进度显示(gif)

JS代码 (function($) { $("#progressImgage").hide(); $("#maskOfProgressImage").hide(); //备份jquery的ajax方法 var _ajax = $.ajax; //重写jquery的ajax方法 $.ajax = function(options) { var img = $("#progressImgage"); var mask = $("#maskO

JQuery.Ajax之错误调试帮助信息 <转>

原文链接:http://mybloggers.blog.163.com/blog/static/1003865092010111631741468/ 下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET".注意:其它 HTTP 请求方法,如 P

ajax处理错误(六)

使用ajax时必须留心两类错误,他们之间的区别源于视角不同. 一.第一类错误是从XMLHttpRequest对象的角度看到的问题:某些因素阻例如止了请求发送到服务器,例如DNS无法解析主机名,连接请求被拒绝,或者url无效. 二.第二类问题是从应用程序的角度看到的问题而非XMLHttpRequest对象.它们发生于请求成功发送至服务器,服务器接受请求.进行处理并生成响应,但该响应并不指向你期望的内容时.如:如果你请求的URL不存在,这类问题就会发生. 一.处理设置错误 需要处理的第一类问题是向X

ajax查找错误信息

error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, 假如ajax返回的是字符串,则返回类型改为:dataType:'text',假如是json的数据,则返回:dataType:'json'

ajax status 错误

status 0**:未被始化 status 1**:请求收到,继续处理 status 2**:操作成功收到,分析.接受 status 3**:完成此请求必须进一步处理 status 4**:请求包含一个错误语法或不能完成 status 5**:服务器执行一个完全有效请求失败 status 100错误 客户必须继续发出请求(Continue) status 101错误 客户要求服务器根据请求转换HTTP协议版本(Switching protocols) status 200错误 交易成功(OK)

SpringBoot统一错误处理

1.处理错误请求页面 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import org.slf4j.Logger;import org.slf4j.LoggerFact