【发布时间】:2019-11-21 16:24:24
【问题描述】:
我想使用 FileSaver 从我的 Rest API 下载文件。在 Content-Disposition 的响应标题中,我有文件名。如何以角度读取标题? 当我这样设置我的服务时:
getPdf() {
return this.httpClient.get(this.url, {responseType: 'blob'}); }
我可以毫无问题地下载文件,但是当我想另外设置 {observe: 'response'} 以读取选项中的标题时,我的浏览器出现错误。
ERROR TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided.
at saveAs (FileSaver.js:112)
我的文件保存功能:
this.packageService.getPdf().subscribe(
pdf => {
saveAs(pdf);
}
);
我在后端添加了 Access-Control-Expose-Headers,只有当我添加 {observe} 时才会出现错误,因此我无法找到解决方案。
【问题讨论】:
-
在您的后端,您要访问的网址是什么?现在你正在尝试做类似
localhost:8080/url的事情,因为你传入的是'url'ant 而不是this.url。另外,你检查过这个答案stackoverflow.com/a/33759534/8947748 -
对不起我的错误,有this.url,我的url是localhost:8080/packages/{id}/raport,但是没有问题,因为我的问题显示当我想读取标题时与{观察}。没有它,文件可以正常下载。