当我通过浏览器访问此网址时,它会要求我下载文件
https://some-domain.com/api/v1/file/log123.tar.gz?type=log
我需要从angularjs http request
下载我为此写了一个工厂,但没有下载
请求获得200状态,但仍然在firebug中显示加载程序
app.factory('File', ['$http','GENERAL_CONFIG', function($http, GENERAL_CONFIG) {
var API_URL = GENERAL_CONFIG.BASE_API_URL;
API_URL = API_URL + 'filetransfer/';
return {
download: function(filename, type,successcallback, errorcallback){
var apiurl = API_URL + filename + '?type='+type
$http.get(apiurl,{
headers: {
"Content-Type": "application/x-download;"
}
}).success(successcallback).error(errorcallback);
}
}
}]);
答案 0 :(得分:0)
这是一篇很老的帖子,但我会回应目前的需求。
您的http请求应该有一个额外的标头。 设置responseType:“arraybuffer”。
然后您可以将该响应转换为blob obj。并将其传递给回调:URL.createObjectURL(new Blob([response]));