【问题标题】:Adding custom headers to AngularJS app将自定义标头添加到 AngularJS 应用程序
【发布时间】:2014-04-15 11:51:42
【问题描述】:

我想知道是否有一种方法可以将自定义标头添加到我的 AngularJS 应用程序中,而不必将它们添加到每个调用中。

到目前为止,我的通话中的一个示例如下所示:

$http.get('http://api.discogs.com/artists/' + $scope.artist.id + '/releases?page=' +       $scope.nextPage + '&per_page=8').then(function(data2) {
    $scope.nextPage = $scope.nextPage + 1;
    if($scope.nextPage > data2.data.pagination.pages){
       $scope.morePages = false;
    }
    $scope.releases = $scope.releases.concat(data2.data.releases);
})
.finally(function(){
    $scope.loading = false;
}); 

我在另一个问题中观察到有人会像这样包含标题:

$http({method: 'GET', url: 'http://localhost:3000/api/symbol/junk', 
       headers:{
         'Access-Control-Allow-Origin': '*',
         'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
         'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With',
         'X-Random-Shit':'123123123'
       }})
      .success(function(d){ console.log( "yay" ); })

但首先,我不知道如何将它集成到我的通话中,其次我认为这仅适用于一个通话,而不是所有通话。

有什么建议吗?

谢谢!

【问题讨论】:

    标签: angularjs http-headers custom-headers


    【解决方案1】:

    使用您的方法进行调用:

    var makeCall = function(artistId,etc...,callBackFunc){
     var config={method: 'GET',
              url: 'http://api.discogs.com/artists/', 
              params:{artistId:artistId,etc....}
              headers:{
             'Access-Control-Allow-Origin': '*',
             'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
             'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With',
             'X-Random-Shit':'123123123'
     }};
     $http(config).then(function(data){
        callBackFunc(data);
     })
    }
    

    并像这样在您的控制器中使用它:

    myService.makeCall(artistId, other parameters such as page no,.....,function(data2){
    $scope.nextPage = $scope.nextPage + 1;
        if($scope.nextPage > data2.data.pagination.pages){
           $scope.morePages = false;
        }
        $scope.releases = $scope.releases.concat(data2.data.releases);
    
    })
    

    是的,这适用于一个请求,您可以使用$http 拦截器将其应用于所有请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-04
      • 2019-06-10
      • 2018-02-26
      • 2016-10-18
      • 1970-01-01
      • 2017-11-11
      • 2012-04-23
      • 2017-07-04
      相关资源
      最近更新 更多