1

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

4

1 回答 1

0

而不是 statusCode 我使用了错误。这就是你如何得到与你会得到的错误相同的结果

statusCode : {
    401: function(){...}
}

你做,

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

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

于 2013-11-22T04:45:13.290 回答