JQuery Ajax调用始终出现错误,状态代码为0

JQuery Ajax调用始终出现错误,状态代码为0,jquery,ajax,status,deferred,promise,Jquery,Ajax,Status,Deferred,Promise,我有一套相当复杂的脚本,大部分时间都可以使用。我想做的是发出AJAX请求,然后在出现401错误时做些什么。当他们得到401时,我会发送他们进行身份验证,然后重新发送请求。我向ajaxPrefilter添加了一些处理,它看起来如下所示: jqXhr.then(function (response, status) { var deferred = $.Deferred(), data = response && response.d ? response.d

我有一套相当复杂的脚本,大部分时间都可以使用。我想做的是发出AJAX请求,然后在出现401错误时做些什么。当他们得到401时,我会发送他们进行身份验证,然后重新发送请求。我向ajaxPrefilter添加了一些处理,它看起来如下所示:

jqXhr.then(function (response, status) {
    var deferred = $.Deferred(),
        data = response && response.d ? response.d : response,
        result = data && _.isArray(data.results) ? data.results : data;

    deferred.resolveWith(this, [result, status, jqXhr, response]);

    return deferred;
},
function (response, status, error) {
    var secondPromise = $.Deferred();

    if (response.status == 401) {
         // handle authentication
         // resend request
         // depending on outcome, resolve or reject secondPromise
    } else {
         // not authentication issue, just reject the secondPromise
    }

    return secondPromise;
}).promise(jqXhr);
基本上,“then”的第一部分只是解析延迟对象并将其发回(因此,等待调用的人立即得到它)。第二部分(错误)检查401的错误代码(需要验证)。如果是401,它将进行身份验证、重新发送请求并处理结果。如果不是401,它会抛出或拒绝它

问题在于,error函数的响应、状态、错误参数始终如下所示:

response=状态为0、状态为0、状态文本为“error”且无响应文本的延迟对象。 status=“error” error=“”

有没有什么方法我没有发现错误?我可以在firebug的net选项卡和Fiddler中清楚地看到响应代码是401


对此有何看法?

零响应状态通常与
文件相关://
协议。据我回忆,在任何情况下,你都会得到零。如有必要,然后安装WAPM(或单独安装其组件),这将允许您在
http://
协议下本地浏览您的网页。未使用文件://协议,仍然卡住了…:(你还卡住了吗?不……但我没有因为我离开了那份工作而卡住,不是因为我解决了问题。。。