Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Javascript angularjs:如何使用$http进行开火和遗忘_Javascript_Ajax_Angularjs_Asynchronous_Xmlhttprequest - Fatal编程技术网

Javascript angularjs:如何使用$http进行开火和遗忘

Javascript angularjs:如何使用$http进行开火和遗忘,javascript,ajax,angularjs,asynchronous,xmlhttprequest,Javascript,Ajax,Angularjs,Asynchronous,Xmlhttprequest,我需要做一个我对回复不感兴趣的post请求(开火并忘记) 我找到了一个方法来做这件事 xhr.onreadystatechange = function() { xhr.abort(); } 但在角度上,情况有点不同。例如,如果使用$http var promise = $http.post(url, data); 我不知道如何获得xhr对象?有什么建议吗?那么你想在不考虑答案的情况下发表文章?在这种情况下,您可以使用$http.post(url,数据)发出和http请求,然后从服务器发送

我需要做一个我对回复不感兴趣的post请求(开火并忘记)

我找到了一个方法来做这件事

xhr.onreadystatechange = function() { xhr.abort(); }

但在角度上,情况有点不同。例如,如果使用
$http

var promise = $http.post(url, data);

我不知道如何获得
xhr
对象?有什么建议吗?

那么你想在不考虑答案的情况下发表文章?在这种情况下,您可以使用
$http.post(url,数据)
发出和http请求,然后从服务器发送一些虚拟响应(如
true
)。

作为替代方法,您可以使用取消请求。
从开始,您现在甚至可以使用承诺中止请求:

var defer = $q.defer();
$http.get('/example', { timeout: defer.promise }).success(callback);
// [...]
defer.resolve();

很多。为什么会有回调?我想你不用
.success(..)
部分就可以做到?实际上,如果没有为
success
定义回调,并且
error
应用了Fire-and-forget策略,这将是一个很好的特性:)您是对的,您不需要
success
回调。您的服务器不会有响应吗?因为否则,只发送一个常规的
POST
并忽略响应会更有意义,正如用户1744968所建议的那样。没有来自服务器的响应,我只需要发布一些数据。问题是,在当前情况下,我得到一个挂起的请求,最后是一个503错误。这是一个很酷的方法,但是当我需要多个并行的fire'n'forget时,它对我不起作用-如果我在循环中使用
$q.defer
,只有一个请求会在
resolve
上被取消,如果我使用
Promise.all()
那么只有第一个请求才会触发:/