0

私はAngularJSを学ぼうとしています。REST API に対して単純な認証済み get 要求を作成しようとしています。この時点で、私は応答を返そうとしています。ヘッダーを適切に送信できないように見えるため、無効なキーを取得し続けます。

angular.module('App', ['ngResource']);

function AppCtrl($scope, $resource){
$scope.app = $resource('https://theapiurl.com/parameter=:action',
    {action:'My Parameter works fine!'}, 
    {method: 'GET'},
    {headers: 'auth-key' : 'key'});
$scope.app.get();
}

送信するヘッダーを取得できないようです。読んでくれてありがとう。

4

2 に答える 2

4

angular-resource 1.1.x+ を使用している場合は、次のように動作するはずです。

angular.module('App', ['ngResource']);

function AppCtrl($scope, $resource){
    $scope.app = $resource('https://theapiurl.com/parameter=:action',
      {
        action:'My Parameter works fine!'
      }, 
      {
        get: {
          method: 'GET',
          headers : { 'auth-key' : 'key' }
        }
      });
     $scope.app.get();
}

1.0.x ブランチを使用している場合、これは機能しません。唯一の代替手段は、$httpProvider にグローバル デフォルト ヘッダーを設定するか、$http を直接 ($resource を使用せずに) ユーザーにすることだと思います。ヘッダーをグローバルに設定する方法は次のとおりです。

$httpProvider.defaults.headers.get['auth-key'] = 'key';
于 2013-11-02T01:40:59.570 に答える
1

すべてのリソースでヘッダーを設定しないようにするには、インターセプターを使用できます。

app.config(function($httpProvider) {
    $httpProvider.interceptors.push(function($q) {
        return {
            'request': function(config) {
            config.headers['auth-key'] = 'key';
                return $q.when(config);
            }
        };
    });
});
于 2013-11-02T04:28:49.413 に答える