所以我最近實現了一種方法來取消$ 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