我有一个用于向服务器发送请求的包装函数,如果服务器返回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 .error函数选择它只是因为它不是200 OK但是我需要检查它是否是401代码。
答案 0 :(得分:11)
在error
回调中,检查xhr.status
其中xhr
是该函数的第一个参数。
答案 1 :(得分:0)
更新"承诺"方法: 从jQuery 1.5开始,我们可以调用.fail()promise并获取如下状态代码:
$.post( "example.php", function() {
alert( "success" );
}).fail(function(xhr) {
console.log(xhr.status);
});
请注意,从jQuery 3.0开始删除.error()promise