success error code javascript jquery jquery-mobile jquery-post

javascript - code - ¿Cómo obtengo el código de respuesta de error HTTP en Jquery POST?



status 200 ajax (2)

En la devolución de llamada de error , marque xhr.status donde xhr es el primer argumento de la función.

Tengo una función de contenedor utilizada para enviar solicitudes a un servidor, tengo que hacer algo específico si el servidor devuelve un código de 401 y no estoy seguro de cómo obtener estos datos

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

Si mi código del lado del servidor arroja una excepción 401, la función jquery .error recoge esto simplemente porque no está bien 200 pero debo verificar si es un código 401.


Actualización sobre el método de "promesa": a partir de jQuery 1.5 podemos llamar a la promesa .fail () y obtener el código de estado de esta manera:

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

Tenga en cuenta que la promesa .error () se elimina a partir de jQuery 3.0