AngularJS $ http没有使用状态码401调用回调?

时间:2015-10-23 06:21:42

标签: angularjs express mean-stack

我在导航到产品页面时运行以下服务:

app.factory('ProductService',['$http','$location',function($http,$location){
    var factory = {};
    factory.getAll = function(){
        $http.get('/products').success(function(response){
            console.log('success callback hit');
            if(response.status === 401){
                console.log(response);
                $location.path('login');
            }
        }).error(function(){
            console.log('error');
        });
    };
    return factory;
}]);

在我的快递路由器中,我检查是否req.isAuthenticated(),如果没有(我正在测试的情况),我打电话给:

return res.status(401).send("Not Authorized");

这是我服务器中唯一一个发送401响应的地方,所以我知道$ http.get(/ products)到了正确的位置,我看到get请求返回401控制台,但为什么我的任何回调都没有被击中? (没有任何东西记录到控制台,我也没有被重定向到客户端。)如果我使用全局拦截器,我会读到有关需要拒绝承诺的事情,但我不认为我是使用任何拦截器?编辑:这就是为什么我不认为它是建议的问题的重复,因为我没有使用自定义拦截器。

更新:我的错误处理程序被调用,我的node.js命令窗口中没有记录任何内容(呃,因为它在客户端上)。感谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

我的错误处理程序被调用,我的node.js命令窗口中没有记录任何内容(呃,因为它在客户端上)。感谢大家的帮助!