繁体   English   中英

角$ http获取所有标头

[英]angular $http get all headers

TL; DR;

我想从$http服务获取所有标头并将它们显示在页面上。 我不在乎它只是键列表还是键/值对。

  • 我怎样才能做到这一点?
  • 为什么我一直在做的事情不起作用?

我想做的事

  $http
    .get( '/data/?some=parameters&go=here' )
    .success( function( response, status, headers ) {
      $scope.headers = headers();
    });

如果我console.log headers()$scope.headers这将在Chrome控制台中正确输出。

我唯一能做到的事

  $http
    .get( '/data/?some=parameters&go=here' )
    .success( function( response, status, headers ) {
      $scope.headers['cache-control']     = headers('cache-control');
      $scope.headers['connection']        = headers('connection');
      $scope.headers['content-type']      = headers('content-type');
      $scope.headers['date']              = headers('date');
      $scope.headers['expires']           = headers('expires');
      $scope.headers['keep-alive']        = headers('keep-alive');
      $scope.headers['pragma']            = headers('pragma');
      $scope.headers['server']            = headers('server');
      $scope.headers['transfer-encoding'] = headers('transfer-encoding');
      $scope.headers['x-powered-by']      = headers('x-powered-by');
      // etc....
    });

这实际上在代码中有效,但是我必须手动告诉每个期望的标头。

同时在我看来

<div class="row" ng-repeat="(key,value) in headers">
  <div class="col-xs-4 text-right">{{ key }}</div>
  <div class="col-xs-8 text-left">{{ value }}</div>
</div>

在提出此问题时,AngularJS v1.3.15受到了损害。

我不知道为什么,以及如何angular产生标题object ,但这个错误的原因是对象没有hasOwnProperty()函数,用于通过ng-repeat循环,避免标准JS函数的调用。

我设法做到的是简单复制新创建的对象中的属性以使其起作用:

$scope.headers = {}

var tmp = headers()

for (var key in tmp) {
  $scope.headers[key] = tmp[key]
}

请参阅“ 塞子 ”示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM