2016-11-28 61 views
0

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

这个$ http post没有打“成功”或“错误”处理程序,我不知道该如何调试它。

所有其他使用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) 
    }) 
    } 
+2

发现什么是您的控制台的网络选项卡说呢? – baao

+1

您是否也可以发布您的RequestService? – monssef

回答

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