通过 AngularJS 中的 $resource 访问 header 信息

Access to header information by $resource in AngularJS

我通过我工厂内的 $resource 发送了一个请求 server-side。 在returnobject里面有很多资料,但是我想在headers里面获得授权。 我试图通过 console.log() 打印 returning object 但我没有在控制台中看到任何 headers 和授权。我该怎么办?

controllers.controller('ProfileSettingCtrl', function ($scope,User) {
     User.get({id: 'me'}, function(res) {
            console.log(res);
            $scope.profile = res;
        })

Documentation for $resource

Success callback is called with (value, responseHeaders) arguments.

看来你可以用 function (res, headers) { console.log(headers); }

得到 headers

根据 $resource 文档,header 作为第二个参数传递给您的成功回调。

It's worth noting that the success callback for get, query and other methods gets passed in the response that came from the server as well as $http header getter function, so one could rewrite the above example and get access to http headers as:

var User = $resource('/user/:userId', {userId:'@id'}); User.get({userId:123}, function(u, getResponseHeaders){ u.abc = true; u.$save(function(u, putResponseHeaders) { //u => saved user object //putResponseHeaders => $http header getter }); });

如果你想使用header信息,你必须使用成功回调。否则我总是建议使用 promises,你可以链接并传递它: User.get().$promise.then(successCallback).catch(errorCallback);