How to cancel an $http request in AngularJS?

mpm picture mpm · Dec 18, 2012 · Viewed 119.8k times · Source

Given a Ajax request in AngularJS

$http.get("/backend/").success(callback);

what is the most effective way to cancel that request if another request is launched (same backend, different parameters for instance).

Answer

lambinator picture lambinator · Jun 26, 2013

This feature was added to the 1.1.5 release via a timeout parameter:

var canceler = $q.defer();
$http.get('/someUrl', {timeout: canceler.promise}).success(successCallback);
// later...
canceler.resolve();  // Aborts the $http request if it isn't finished.