1

jQuery の statusCode 関数を使用して、特定の statusCode をグローバルに検出して対応しようとしています。ただし、特定の呼び出しが失敗すると、元のエラーと THEN 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 ステートメントを使用したくありません。

誰にもアイデアはありますか?

4

1 に答える 1

0

As far as I know you can't achieve that without changing jQuery itself. You could do something like this:

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