所以我最近实现了一种方法来取消$ http请求通过传递和解析承诺通过超时属性。
当一个请求被中止时,$ http承诺进入错误块。这一切都很好,在完成所有处理后,我收到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对象等待它发生错误。
你可以发布代码,或足以重现该问题吗? –
修改为包含代码。最初没有包含代码,因为它是中止$ http请求的相当通用的实现。不是只有在完成运行后才会出现错误的代码块。 – tmunnerley