中止角$ http请求时出现XHR.statusText错误

时间:2015-11-05 19:44:40

标签: angularjs

所以我最近实现了一种通过传入和解析promise来通过timeout属性取消$ http请求的方法。

当请求中止时,$ http promise将转到错误块。这一切都很好,在完成所有处理之后我收到来自angular.js的错误(xdomain.js在调用堆栈中),声明它“无法读取null的属性'statusText'”。空是xhr对象。

当请求被成功取消时,我目前处于亏损状态,但似乎xhr对象在调用xhr.onload()之后就被销毁了。

以下是我取消请求的示例:

var request = {
    url: 'someurl',
    method: 'get',
    headers: headers
    timeout: canceller // this is a promise that I resolve in a controller in order to abort an $http request. This works fine.
}

$http(request).then(function () { 
//success block 
}, function () { 
// error block 
});

正如我所说的那样,它进入了错误块,但它不在该块内部引发角度错误,而是似乎是请求返回并且不再有xhr对象等待它发生错误。

1 个答案:

答案 0 :(得分:1)

这是Angular和Xdomain的常见问题。我喜欢的解决方法是在提交请求时传递唯一标识符或bool。如果在请求完成时值已更改,则忽略结果。