2013-06-03 2 views
1

jQuery의 statusCode 함수를 사용하여 특정 statusCode를 전역 적으로 감지하고 이에 대응하려고합니다. 그러나 특정 호출이 실패하면 원래 오류와 그 다음 statusCode가 모두 충돌하는 것 같습니다. 왜 이런 일이 일어나는 걸까요? statusCode를 먼저 치면 안 될까요?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를 누르기를 원합니다. 이 예제는 분명히 많은 아약스 호출에 걸쳐 퍼져 있으므로 각 오류에서 if 문을 사용하지 않거나 statusCode를 사용하는 지점을 무효화합니다.

누구에게 아이디어가 있습니까?

답변

0

내가 아는 한 jQuery 자체를 변경하지 않고는이를 달성 할 수 없습니다. 다음과 같이 할 수 있습니다.

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