AngularJS$http get回调未被调用,状态代码401?

AngularJS$http get回调未被调用,状态代码401?,angularjs,express,mean-stack,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

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

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命令窗口duh中没有记录任何内容,因为它在客户端上。谢谢大家的帮助

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

最糟糕的情况是,我可能会在回调中执行res.send{status:401,message:Not Authorized}和check response.status之类的操作,但在发送状态代码时肯定有某种方法可以调用回调?401是一个错误,而不是一个成功,因此您应该在控制台中看到错误,基于此代码。@Claies的可能副本我也没有在控制台中看到错误。我在控制台中看到的最后一件事是GET/products 401,其中包含您为401响应发布的代码,您肯定会进入错误回调。如果不是这样的话,那么代码的其余部分就有问题了,但是您所发布的代码就很好。这意味着没有人能帮助你。