首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用FileSaver下载文件

用FileSaver下载文件
EN

Stack Overflow用户
提问于 2019-11-22 00:24:25
回答 1查看 5K关注 0票数 2

我想用FileSaver从Rest API下载文件。在Content-Disposition中的响应头中,我有filename。如何在angular中读取标题?当我这样设置我的服务时:

代码语言:javascript
复制
getPdf() {
return this.httpClient.get(this.url, {responseType: 'blob'}); } 

我可以毫无问题地下载文件,但当我想在选项中额外设置{observe:'response'}以读取标题时,我的浏览器出现错误。

代码语言:javascript
复制
ERROR TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided.
at saveAs (FileSaver.js:112)

我的文件保存函数:

代码语言:javascript
复制
this.packageService.getPdf().subscribe(
  pdf => {
     saveAs(pdf);
  }
);

我在后端添加了Access-Control-Expose-Headers,只有当我添加{observe}时,才会出现错误,所以我找不到解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-22 01:00:00

我认为问题在于,当您请求响应时,它不仅仅是数据。因此,当您尝试将其直接传递给filesaver时,它会抛出一个异常。

我想这可能行得通?

代码语言:javascript
复制
this.packageService.getPdf().subscribe(
  response => {
     saveAs(response.body);
  }
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58979439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档