【发布时间】:2015-06-02 09:04:21
【问题描述】:
在 Angular (v1.2.19) 中,我能够在工厂中做这样的事情:
myApp.factory('GetNumber', ['$resource',
function($resource) {
var get_headers = $resource('some/url', null, {
get_number: {
method: 'HEAD',
transformResponse: function(data, headers) {
var count = headers()['x-number'];
return count;
}
}
});
return get_headers;
}
]);
像这样从我的控制器调用它:
$q.all({
'item1': GetNumber.get_number().$promise,
'item2': SomeOtherService.get().$promise
})
.then(function(results) {
$scope.newNumber = results.item1.value;
});
我可以取回自定义标题,而无需检索整个标题。
现在在 v1.3.15 中,它不起作用。我可以在 Chrome 中看到标题中带有“x-number”的标题,但是如果我在 Chrome 中的“var count”行上放置一个断点,我从来没有打过它(我确实用 v1.2.19 打过它)。
我已经验证使用 $http.head 有效,所以如果我的控制器中有这个:
$http.head('some/url')
.success(function(data, status, headers, config) {
var count = headers()['x-number'];
$scope.newNumber = count ? count : 0;
});
我得到了我的作用域值。
我注意到没有很多人使用 http 'HEAD' 方法的示例,我想知道是否有我尚未通过搜索找到的原因?
我确实找到了这个 StackOverflow 问题并回答了 HTTP Get: Only download the header? (HEAD is not supported),虽然我同意该声明,但我不希望请求标头和正文的开销。
有什么建议吗? 朱莉
【问题讨论】:
-
添加一个错误处理程序,它可能会被调用并提供更多关于它为什么不工作的信息。
-
谢谢凯文...我会试试的!
标签: angularjs http-headers ngresource