我正在做一些jquery ajax调用,我想在所有这些调用上捕获401状态代码。所以,我使用$ .ajaxSetup()来捕获每个获得401并重定向到登录页面的调用。它看起来像这样,
$.ajaxSetup({
xhrFields : {withCredentials : true},
crossDomain : true,
complete : function(jqXHR, textStatus){
console.log("Default Test");
console.log(jqXHR);
console.log(textStatus);
if(jqXHR.status == 401){
console.log("True");
window.location.href = "login.html";
}else if(jqXHR.status == 423){
console.log("False");
window.location.href = "gateway.html";
}
}
});
我拨打了未经授权的电话。当用小提琴手看时,我获得了401状态。当我用chrome打开控制台时,它也说我获得了401状态。但是,如果我查看jqXHR.status,它会说它的状态为0。并且文本状态仅表示“错误”。不是很有帮助。我在chrome,FF和IE中测试了这个。他们都做同样的事情。
知道我怎么能让它显示401?我不想只做一个,
if(jqXHR.status == 0){
window.location.href = "login.html";
}
因为我非常确定0的状态代码不仅仅是未经授权的呼叫,而且我不想在没有问题的情况下重定向到登录。
正在制作的一个ajax调用的示例。
function getStats(){
$.ajax({
url: DONEP+'dashboard/stats/',
type: "GET",
dataType: "json",
success: function(data){
...
}
});
}
任何帮助都会受到极大的折磨!感谢。