Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 中止$http请求时出现XHR.statusText错误_Angularjs - Fatal编程技术网

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

Angularjs 中止$http请求时出现XHR.statusText错误,angularjs,Angularjs,因此,我最近实现了一种方法,通过传入并解析一个承诺,通过timeout属性取消$http请求 当请求被中止时,$http承诺将转到错误块。这一切都很好,在这一切完成处理后,我从angular.js(xdomain.js在调用堆栈中)收到一个错误,指出它“无法读取null的属性'statusText'。Null是xhr对象 由于请求被成功取消,我目前不知所措,但似乎在调用xhr.onload()之后,xhr对象就被销毁了 以下是我如何取消请求的示例: var request = { url

因此,我最近实现了一种方法,通过传入并解析一个承诺,通过timeout属性取消$http请求

当请求被中止时,$http承诺将转到错误块。这一切都很好,在这一切完成处理后,我从angular.js(xdomain.js在调用堆栈中)收到一个错误,指出它“无法读取null的属性'statusText'。Null是xhr对象

由于请求被成功取消,我目前不知所措,但似乎在调用xhr.onload()之后,xhr对象就被销毁了

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

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对象等待错误发生。

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

你能发布代码吗,或者足够多的代码来重现问题?编辑以包含代码。最初没有包含代码,因为这是一个相当通用的中止$http请求的实现。不是这段代码在运行结束后才给出错误。请同意@Patrick。更简单、更容易跟踪,并且让您的控制器处理何时重置唯一标识符,那么控制器可以忽略与id不匹配的响应。