AngularJS - 没有正确调用$ http的success()和error()

时间:2016-11-28 20:12:42

标签: javascript angularjs

我正在研究这个代码,我有一个非常奇怪的问题。我正在使用AngularJS $ http请求,并试图在之后运行成功或错误。我目前从服务器获得404(客户端说),但服务器没有预防404(实际上它说它发送了200响应)。

此$ http帖子没有点击“成功”或“错误”处理程序,我不知道如何进行调试。

使用RequestService的所有其他功能都能完美运行。

  var refreshBusinesses = function() {
    console.log("refreshBusinesses");
    RequestService.post('user/managed_businesses', {}).then(function(businesses){
      console.log('got busineses ', businesses)
      $scope.businesses = businesses
    }, function(error){
      console.log("ERROR!");
      $scope.error = error.message;
      console.log('business refresh error ', error)
    })
  }

1 个答案:

答案 0 :(得分:0)

您的服务RequestService很可能无法正确处理promise。我相信它是角度$http的包装。如果是这样,可能它不会拒绝承诺错误,而只是返回一些值。

所以要解决它,请检查RequestService它是否正确处理错误情况:

$http.post('url', data).then(
  function(res) {
     return res;
  }, 
  function(error) {
     var deferred = $q.defer();
     return deferred.reject(error);
  });

$q个文档可以在https://docs.angularjs.org/api/ng/service/$q

找到