IE没有处理401错误

时间:2013-10-10 00:24:35

标签: javascript ajax internet-explorer

我有一个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错误”。消息未出现在控制台中。

1 个答案:

答案 0 :(得分:0)

我使用了错误而不是statusCode。这就是你得到与

相同的错误的结果
statusCode : {
    401: function(){...}
}

你做,

error: function(jqXHR, textStatus, errorThrown){
    if(jqXHR.status == 401){
        ...
    }
}

这在所有主流浏览器中都是一致的,不像statusCode方法不适用于IE。这样,您就可以对IE中的错误进行特定的错误处理。