使用statusCode处理jQuery AJAX失败

时间:2013-06-03 18:01:12

标签: javascript ajax jquery

我正在尝试使用jQuery的statusCode函数全局检测并响应某个statusCode。但是,当特定的调用失败时,它似乎同时遇到原始错误,然后是statusCode。为什么会这样?可以先点击statusCode吗?

这是我的ajaxSetup:

$.ajaxSetup({
    statusCode: {
            412 : function(data) {
               alert('do something!');
            }
     }
});

这是一个示例实例:

$.ajax({
     type: "GET", 
     url: 'a_url.json', 
     dataType: 'json',
     data : {
          'id': dnaRefTOID
     },
     success: function(data) {
          alert('success');
     },
     error : function(xhr, status, error) {
           alert(xhr.statusText);
     }
 });

我所看到的是,在按下statusCode之前,呼叫正在发出“错误”。我希望它始终按下statusCode和statusCode。这个例子显然分布在许多ajax调用中,所以我不想在每个错误中使用if语句,否则它就会失败使用statusCode。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

据我所知,如果不改变jQuery本身就无法实现这一目标。 你可以这样做:

$(document).ajaxError(function(event, jqxhr, settings, exception) {
   if (jqxhr.status == 412) {
      //handle status code 412 here
   }
});