【发布时间】:2017-01-10 12:31:52
【问题描述】:
你知道我如何从 get 请求中访问响应头吗?
我有一个返回承诺的服务功能。我的控制器解决了承诺,并且在 .then 函数中我需要响应标头中的内容类型。
我已经尝试使用“headers”参数,我使用 console.log(headers()) 显示该参数,但控制台中显示错误“headers() is not a function”。
我的服务:
.factory('GetResultFile',
['$http', '$q',
function ($http, $q) {
var service = {};
service.getResult = function(id, rid) {
var deferred = $q.defer();
$http
.get('http://localhost:9999/v1/jmeter/' + id + '/results/' + rid, {cache: false})
.then(function(data, status, headers, config) {
if(data.status == 200) {
console.log(data.status);
deferred.resolve(data);
}
else {
deferred.reject(data);
}
});
return deferred.promise;
}
return service;
}]);
控制器:
$scope.getResult = function(rid) {
console.log($scope.id);
GetResultFile.getResult($scope.id, rid)
.then(function(data, headers) {
//console.log(headers.Content-type);
console.log(headers());
console.log(data);
console.log("Download succeed");
console.log(data.status);
var file = new Blob([data.data], {type: 'text/plain;charset=utf-8'});
FileSaver.saveAs(file, 'test.txt');
}, function (data) {
console.log("Download ERROR!");
console.log(data.status);
})
};
}])
【问题讨论】:
-
能否添加您的服务代码。
-
我更新了我的答案。 @MoshFeu 哦,我会检查帖子
-
@kai 检查我的答案并接受它如果它满足你
标签: javascript angularjs header