Javascript 无法保存从.Net api发送的.pdf文档
我得到了一个返回文件的Api,我将响应写入这个.getPDFBuffer,在这里你们可以看到它。 主要的问题是,如果我使用我的函数,它会下载一个空文件,但如果我使用Postman执行请求,它会正确保存 //this.getPDFBuffer包含response.data:Javascript 无法保存从.Net api发送的.pdf文档,javascript,html,vuejs2,Javascript,Html,Vuejs2,我得到了一个返回文件的Api,我将响应写入这个.getPDFBuffer,在这里你们可以看到它。 主要的问题是,如果我使用我的函数,它会下载一个空文件,但如果我使用Postman执行请求,它会正确保存 //this.getPDFBuffer包含response.data: var file = new Blob([this.getPDFBuffer], {type: 'application/pdf'}); var url = window.URL.createObjec
var file = new Blob([this.getPDFBuffer], {type: 'application/pdf'});
var url = window.URL.createObjectURL(file);
var link = document.createElement('a');
link.setAttribute('href', url);
link.setAttribute('download','download');
link.click();
我希望下载一个文件这不是完整的答案,但: 在第4行和第5行,我建议使用
link.href=url代码>而不是setAttribute()
。对于第5行,它是link.download=“download”代码>。这可以解决问题,但这不是一个解决方案,只是一个提示
您还必须document.body.appendChild(link)
可能在第5行之后,以便在HTML中显示它
另外,在第5行,您可能需要设置不同的参数(请参阅)
更改代码:
var file = new Blob([this.getPDFBuffer], {type: 'application/pdf'});
var url = window.URL.createObjectURL(file);
var link = document.createElement('a');
link.href = url;
link.download = "download"; // Maybe 'link.download;'
document.body.appendChild(link)
link.click();
谢谢,但我忘了说文档正在保存,但他是空的。我试着向邮递员发出请求,然后保存,它成功地保存了。我没有使用.NET的经验,所以我是一个不问的人……:)我想这不是.Net的问题,真的吗?我会在谷歌上搜索,或者看看你是如何得到PDFMaybe的,它是下载元素吗?在W3Schools上,download属性没有任何内容,甚至没有=符号