2013-06-03 18 views
1

我想通过jQuery的statusCode函数全局检测并响应某个statusCode。但是,当一个特定的调用失败时,它似乎同时触及原始错误和THEN状态码。这是为什么发生?它可以首先打到statusCode吗?处理jQuery与状态码的AJAX失败

这里是我的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。

有没有人有任何想法?

回答

0

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

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