Javascript 使用AJAX和HTML按钮下载PDF文件(无jquery)

Javascript 使用AJAX和HTML按钮下载PDF文件(无jquery),javascript,ajax,Javascript,Ajax,我想在按下HTML按钮时下载PDF文件。我希望单击事件位于JS文件中 我需要做一些与下面代码相同的事情,但在JS文件中: <a href="url" download> <button>Download</button> </a> 这是我的工作代码 const blob = new Blob([response], { type: 'application/pdf' }); const link = documen

我想在按下HTML按钮时下载PDF文件。我希望单击事件位于JS文件中

我需要做一些与下面代码相同的事情,但在JS文件中:

    <a href="url" download>
        <button>Download</button>
    </a>

这是我的工作代码

const blob = new Blob([response], { type: 'application/pdf' });
const link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "filename.pdf";
link.click();

如果您已经拥有URL,并且只希望下载文件,请使用不可见链接,然后为用户单击该链接:

function triggerDownload(url, filename) {
  const a = document.createElement('a');
  a.href = url;
  a.download = filename;
  a.style.display = `none`;
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
}

请注意添加到文档中,这是将链接视为真实链接所必需的。

我同意mike的观点,您不需要任何ajax来下载它 如果要在下载时添加时间戳,只需更改下载属性

<a href="url" onclick="this.download = `PdfName-${+new Date}.pdf`">Download</a>


或者最好使用内容处置附件标题将其添加到后端

。。。为什么?
有什么问题?您显示的JS表明,您所做的只是让JS对已经是PDF文件的内容执行GET请求,然后尝试通过一个
,这与“在
中使用该URL”相比没有什么意义。最多,让JS设置
href
下载
属性?我想使用异步调用异步什么<代码>触发的下载已经是异步的。您的javascript代码中没有任何东西会创建
元素。@Mike'Pomax'Kamermans您是说setAttribute()?谢谢。我有我的按钮,但它仍然没有下载
<a href="url" onclick="this.download = `PdfName-${+new Date}.pdf`">Download</a>