¿Cómo obtengo el código de estado HTTP con jQuery?

Quiero verificar si una página devuelve el código de estado 401. ¿Es esto posible?

Aquí está mi bash, pero solo devuelve 0.

$.ajax({ url: "http://my-ip/test/test.php", data: {}, complete: function(xhr, statusText){ alert(xhr.status); } }); 

esto es posible con el método jQuery $.ajax()

 $.ajax(serverUrl, { type: OutageViewModel.Id() == 0 ? "POST" : "PUT", data: dataToSave, statusCode: { 200: function (response) { alert('1'); AfterSavedAll(); }, 201: function (response) { alert('1'); AfterSavedAll(); }, 400: function (response) { alert('1'); bootbox.alert('Error While Saving Outage Entry Please Check', function () { }); }, 404: function (response) { alert('1'); bootbox.alert('Error While Saving Outage Entry Please Check', function () { }); } }, success: function () { alert('1'); }, }); 

El tercer argumento es el objeto XMLHttpRequest, por lo que puede hacer lo que quiera.

 $.ajax({ url : 'http://example.com', type : 'post', data : 'a=b' }).done(function(data, statusText, xhr){ var status = xhr.status; //200 var head = xhr.getAllResponseHeaders(); //Detail header info }); 

Use la callback de error.

Por ejemplo:

 jQuery.ajax({'url': '/this_is_not_found', data: {}, error: function(xhr, status) { alert(xhr.status); } }); 

Alertará 404