Как получить код ответа на ошибку HTTP в jQuery POST
У меня есть функция-обертка используется для отправки запросов на сервер, мне нужно сделать что-то конкретное, если сервер возвращает код 401 и я не уверен, как получить эти данные
$.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");
});
Если мой код на стороне сервера выдает исключение 401 jquery .функция ошибки подбирает это только потому, что это не 200 OK, но мне нужно проверить, если его код 401.
2 ответов
обновление метода" promise": по состоянию на jQuery 1.5 мы можем назвать .fail () обещание и получить код состояния, как это:
$.post( "example.php", function() {
alert( "success" );
}).fail(function(xhr) {
console.log(xhr.status);
});
обратите внимание, что .ошибка () обещание удаляется с jQuery 3.0