当fiddler检测到401时,ajax状态代码返回0

时间:2014-04-03 17:02:37

标签: javascript jquery ajax

我正在做一些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){
                ...
            }
        });
    }

任何帮助都会受到极大的折磨!感谢。

0 个答案:

没有答案