通过 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;
})
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);
我通过我工厂内的 $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;
})
Success callback is called with (value, responseHeaders) arguments.
看来你可以用 function (res, headers) { console.log(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);