拦截所有ajax结果并获取响应代码

时间:2016-08-20 17:21:05

标签: javascript jquery ajax

是否可以发送ajax请求,拦截或查看HTML响应代码然后对其采取行动?我有一个使用普通JS和XMLHttpRequest来查看aborterrortimeout之类的系统,但跟踪404和409等会更有用。

这是我目前的代码,这个方法很受欢迎

(function(open) {
            XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
                this.addEventListener("abort", function() {
                    self.trigger('abort');
                }, false);
                this.addEventListener("error", function() {
                    self.trigger('error');
                }, false);
                this.addEventListener("timeout", function() {
                    self.trigger('timeout');
                }, false);
                this.addEventListener("load", function() {
                    self.trigger('load');
                }, false);
                open.call(this, method, url, async, user, pass);
            };
        })(XMLHttpRequest.prototype.open);

但我希望打开HTTP响应代码。我也被绑定到jQuery,所以我可以使用jQuery设置选项提供的任何东西,但到目前为止,我还没有看到获取响应代码的方法。

请注意我正在寻找全球解决方案。我不能为每个单独的ajax请求添加100个单独的函数调用。

1 个答案:

答案 0 :(得分:-1)

可以在this

中轻松找到状态属性
(function(open) {
   XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
   switch(this.status){
      // case 404: etc
   }
            open.call(this, method, url, async, user, pass);
        };
    })(XMLHttpRequest.prototype.open);