Javascript 无法保存从.Net api发送的.pdf文档

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

我得到了一个返回文件的Api,我将响应写入这个.getPDFBuffer,在这里你们可以看到它。 主要的问题是,如果我使用我的函数,它会下载一个空文件,但如果我使用Postman执行请求,它会正确保存

//this.getPDFBuffer包含response.data:

      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属性没有任何内容,甚至没有=符号