gpt4 book ai didi

angularjs - 获取 Angularjs $http post 响应作为文件结果

转载 作者:行者123 更新时间:2023-12-05 00:52:33 24 4
gpt4 key购买 nike

我的 web api 中有一个很长的内容请求参数。所以我需要发送一个 POST 请求。我的 api 正在创建一个 PDF 文件作为响应。但是我无法用 angularjs $ http 得到结果提供者。

var req = {
method: 'POST',
url: 'http://myapi.com/api/renderfile',
data: {
p1: 'very long text....' ,
p2: 'another very long text....',
p3: 'another very long text....'
}
}

$scope.isLoading = true;

$http(req).then(function(response){

// response is file result how can I save it ???

$scope.isLoading = false;
}, function(){
$scope.isLoading = false;
});

我无法在客户端上保存文件响应?

回应是这样的:

enter image description here

当我使用 FileReader
 new FileReader().readAsDataURL(new Blob([response.data], {type:'application/pdf'}));

弹出窗口出现在浏览器上:

enter image description here

但是文件是空的。

最佳答案

如果您的响应中有文件内容,您可以强制浏览器下载此文件。

var reader = new FileReader();

$http(req).then(function(response){
reader.readAsDataURL(new Blob([response.data], {type:'application/pdf'}));
});

reader.onload = function(e) {
window.open(decodeURIComponent(reader.result), '_self', '', false);
}

但首选的解决方案是包括 location带有文件链接的响应中的 header 。因此,您只需导航到此链接即可强制浏览器下载。

建议的解决方案仅适用于 HTML5 浏览器。

关于angularjs - 获取 Angularjs $http post 响应作为文件结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42509737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com