How to get HTTP error response code in jQuery POST

I have a wrapper function used to send requests to the server, I need to do something specific if the server returns a 401 code, and I'm not sure how to get this data

$.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"); }); 

If my server-side code throws a 401 exception, the jquery.error function selects this only because its not 200, but I need to check if there is a 401 code.

+7
source share
2 answers

In the error xhr.status , check xhr.status , where xhr is the first argument to the function.

+11
source

Promise update: with jQuery 1.5, we can name the promise .fail () and get the status code as follows:

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

Note that .error () promise is removed with jQuery 3.0

0
source

All Articles