2011-12-14 3 views
7

서버에 요청을 보내는 데 사용되는 래퍼 함수가 있습니다. 서버가 401 코드를 반환하고 얻을 수있는 방법이 확실하지 않은 경우 특정 작업을 수행해야합니다. 이 데이터Jquery POST에서 HTTP 오류 응답 코드를 얻으려면 어떻게해야합니까?

$.mobile.showPageLoadingMsg();  
$.post(apiUrl+method,p,function(d) { 

    $.mobile.hidePageLoadingMsg(); 
    console.log(d.success); 
    console.log(d.message); 

    if(d.success == true){ 
     window[callback](d.data); 
    } 
    else{ 
     if(d.message != null){ 
      alert(d.message); 
     } 
    } 
},'json') 
.error(function() { 
    //need to check for 401 status here to do something 
    $.mobile.hidePageLoadingMsg(); 
    alert("error"); 
}); 

내 서버 측 코드가 JQuery와에는 .error 기능이 집어 401 예외가 발생하는 경우 단지는 없습니다 200 OK 있기 때문에 나는 그것의 경우 401 코드를 확인해야합니다.

+0

=== not ==, 현명한 것! ==! = :) – Sam

답변

11

error 콜백에서 xhr.status을 확인하십시오. 여기서 xhr은 함수의 첫 번째 인수입니다.

0

은 "약속"방법에 대한 업데이트 : 약속 제거) (

$.post("example.php", function() { 
    alert("success"); 
}).fail(function(xhr) { 
    console.log(xhr.status); 
}); 

주에는 .error : 우리가 .fail() 약속을 호출하고이 같은 상태 코드를 얻을 수 jQuery를 1.5로 jQuery 3.0 현재

관련 문제