AngularJS $ http响应头

Jen*_*ius 22 response-headers angularjs

这个简单的问题困扰着我.我在Web Api Rest服务器的响应头中有一个自定义值.我可以把它看作Firebug:X-TotalPages 204我试着在我的AngularJS控制器中得到它.代码如下.但我找不到任何好的例子如何做到这一点.的console.log(头()[ 'X-总页数']); 记录'undefined'

var assets = angular.module("Assets", ['ui.bootstrap']);
assets.controller('AssetSearchController', function ($scope, $http) {
    $scope.test = 'very';
    $scope.getItems = function () {
        $http({ method: 'GET', url: 'http://localhost:57772/api/assets', params: { search: 1, page: 0, pageSize: 10 } }
            ).success(function (data, status, headers, config) {
                $scope.currentPage = 4;                
                console.log(headers()['X-TotalPages']);

            $scope.items = data;
        }).
        error(function (data, status) {
            console.log(JSON.stringify(data));
            console.log(JSON.stringify(status));
        });

    };
Run Code Online (Sandbox Code Playgroud)

bar*_*sju 35

你应该使用: headers('X-TotalPages')

(发布Wawy的答案,以便解决问题.)


小智 5

对于在新版本的 AngularJS 中替换 $http(url).then()语法的$http(url).success().error() ,我使用了这个:

$http(url).then(function(response){
            response.headers("X-TotalPages");
     });
Run Code Online (Sandbox Code Playgroud)

只需使用response.headers()就会给出响应中附加的所有标头。