我有一个ajax调用,部分用于检查您是否已登录。
function userInfo(){
return $.ajax({
url: "http://api.itassistteam.com/api/account/isloggedon",
type: "GET",
dataType: "json",
xhrFields: {
withCredentials: true
},
statusCode: {
401: function(){
console.log("401 error.");
deleteCookie();
window.location.href = "./login.html";
}
},
});
}
在Chrome,FF和Opera中,它会像预期一样重定向到登录页面,但在IE中它什么都不做。当我查看控制台时,它说
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
知道为什么IE不会采用错误处理程序并重定向登录? “401错误”。消息未出现在控制台中。
答案 0 :(得分:0)
我使用了错误而不是statusCode。这就是你得到与
相同的错误的结果statusCode : {
401: function(){...}
}
你做,
error: function(jqXHR, textStatus, errorThrown){
if(jqXHR.status == 401){
...
}
}
这在所有主流浏览器中都是一致的,不像statusCode方法不适用于IE。这样,您就可以对IE中的错误进行特定的错误处理。