在AngularJS中中止AJAX请求

时间:2014-09-12 09:51:27

标签: javascript jquery ajax angularjs

if (xhr != null) { // xhr is AJAX call request object.
    console.log("abort");
    canceler.resolve();
}

xhr = $http({ method: 'POST', url:("/Home/GetLibrary"), timeout: canceler.promise })
    .success(){
        alert("success");
    })
    .error() {
        alert("error");
    });

这里我检查xhr对象。如果xhr对象不为null,则我中止调用。但它会中止当前的调用,而不是之前的Ajax调用 我尝试再次调用相同的函数,然后所有后续的AJAX调用都被中止。

2 个答案:

答案 0 :(得分:1)

试试这个

 var canceller = $q.defer();
     
    $http.get("yourUrl", { data:data })
         .then(function(response){
            $scope.movie = response.data;
        });
     
    $scope.cancel = function(){
        canceller.resolve("user cancelled");  
    };

$ scope.cancel();

答案 1 :(得分:0)

你可以通过承诺来做到这一点。看看Aborting AJAX Requests Using $http And AngularJS,那个人很好地解释了这个话题。

同时检查以下问题:

How to cancel an $http request in AngularJS?