1

我正在尝试使用 jQuery 的 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 的意义。

有没有人有任何想法?

4

1 回答 1

0

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

$(document).ajaxError(function(event, jqxhr, settings, exception) {
   if (jqxhr.status == 412) {
      //handle status code 412 here
   }
});
于 2013-06-03T18:12:35.217 回答