2015-11-24 63 views
1

我經由ngResource製造頭請求如下響應頭接入

let resource = $resource(url, null, { 
    head: { 
     method: 'HEAD', 
     transformResponse: function(data, headers) { 
      console.log(headers('X-my-header'); 
      return data; 
     } 
    } 
} 
resource.$head(); 

它是使適當的頭的請求,這是我可以在網絡標籤見證;但是,我無法訪問HTTP標頭。如果我使用$ http,我可以訪問這些標題。我想知道,如果有人知道從ngResource HEAD請求訪問RESPONSE HEADERS('X-my-header')的好方法嗎?

回答

1

您需要更新transformResponse功能是這樣的:

var app = angular.module('plunker', ['ngResource']); 

app.factory('myResource', function ($resource) { 
    return $resource('/', {}, { 
    head: { 
     method: 'HEAD', 
     transformResponse: function(data, headers) { 
     var response = {}; 
     response.data = data; 
     response.headers = headers(); 
     response.myCustomValue = headers('X-my-header'); 
     return response; 
     } 
    } 
    }); 
}) 

app.controller('MainCtrl', function($scope, myResource) { 
    $scope.name = 'World'; 
    myResource.head(function successFoo() { 

    }, function errorFoo(response) { 
    console.log(response.data); 
    }); 
}); 

Example

+0

當我適應的更改,並打印出的數據,我得到的是類似以下內容:{$解決:真正} – Conqueror

+0

這意味着你做錯了什麼。我更新我的答案並添加plunkr。 –

+0

更新了我的示例 –