Kaip gauti HTTP būsenos kodą naudojant jQuery?

Noriu patikrinti, ar puslapis grąžina 401 būsenos kodą.

Čia yra mano bandymas, bet jis grąžina 0.

 $.ajax({ url: "http://my-ip/test/test.php", data: {}, complete: function(xhr, statusText){ alert(xhr.status); } }); 
49
02 июня '10 в 11:09 2010-06-02 11:09 horgen yra nustatytas birželio 02 ', 10, 11:09 2010-06-02 11:09
@ 6 atsakymai

tai įmanoma naudojant metodą 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('<span style="color:Red;">Error While Saving Outage Entry Please Check</span>', function () { }); }, 404: function (response) { alert('1'); bootbox.alert('<span style="color:Red;">Error While Saving Outage Entry Please Check</span>', function () { }); } }, success: function () { alert('1'); }, }); 
75
27 сент. atsakymą pateikė Ravi Mittal 27 sep. 2012-09-27 20:31 '12 at 8:31 pm 2012-09-27 20:31

Trečiasis argumentas yra XMLHttpRequest objektas, todėl galite daryti viską, ką norite.

border=0
 $.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 }); 
52
13 авг. atsakymas duotas b123400 13 rug . 2013-08-13 09:15 '13, 9:15, 2013-08-13 09:15

Naudokite klaidos atšaukimą.

Pavyzdžiui:

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

Įspės 404

17
02 июня '10 в 11:17 2010-06-02 11:17 atsakymas pateikiamas balu 02 birželio 10 d. 11:17 2010-06-02 11:17

Manau, jūs taip pat turėtumėte įgyvendinti $ metodo klaidų funkciją . ajax

klaida (XMLHttpRequest, textStatus, errorThrown) Funkcija

Funkcija vadinama, jei užklausa nepavyksta. Funkcija perduodama trims argumentams: XMLHttpRequest objektas, eilutė, apibūdinanti įvykusios klaidos tipą, ir išimties objektas, jei jis įvyko. Galimos antro argumento reikšmės (išskyrus nulį) yra „timeout“, „error“, „unmodified“ ir „Parsererror“.

 $.ajax({ url: "http://my-ip/test/test.php", data: {}, complete: function(xhr, statusText){ alert(xhr.status); } error: function(xhr, statusText, err){ alert("Error:" + xhr.status); } }); 
6
02 июня '10 в 11:17 2010-06-02 11:17 atsakymas pateiktas gvs 02 birželio 10 d. 11:17 2010-06-02 11:17
 $.ajax({ url: "http://my-ip/test/test.php", data: {}, error: function(xhr, statusText, errorThrown){alert(xhr.status);} }); 
5
02 июня '10 в 11:19 2010-06-02 11:19 atsakymas pateikiamas vartec 02 birželio 10 d. 11:19 2010-06-02 11:19

Radau šį sprendimą, kuriame galite paprasčiausiai patikrinti serverio atsakymo kodą naudodami būsenos kodą .

Pavyzdys:

 $.ajax({ type : "POST", url : "/package/callApi/createUser", data : JSON.stringify(data), contentType: "application/json; charset=UTF-8", success: function (response) { alert("Account created"); }, statusCode: { 403: function() { // Only if your server returns a 403 status code can it come in this block. :-) alert("Username already exist"); } }, error: function (e) { alert("Server error - " + e); } }); 
4
05 июня '15 в 12:48 2015-06-05 12:48 atsakymą pateikė Jigar Trivedi birželio 15 d. 15 val. 12:48 2015-06-05 12:48