如标题所述,我使用 JS、锚点 URL 和下载属性从外部系统获取文件。
问题是我必须以特定文件名下载它,并且 PDF 文件预览包含一个
Contain-Disposition
标头以及来自服务器的文件名。对于 Chrome,该标头中的标题具有更高的优先级,我不知道如何自定义标题或覆盖该标头标题。
是否有仅使用客户端 JavaScript 的解决方法?
正如@Dai在评论中所建议的,您可以使用类似于以下的实现来覆盖
Content-Disposition
标头中的文件名:
fetch("url_to_your_pdf_file.pdf")
.then((response) => response.blob())
.then((blob) => {
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = "desired_filename.pdf";
a.click();
URL.revokeObjectURL(url);
})
.catch((error) => {
console.error("Error fetching the PDF:", error);
});
fetch 函数是纯 JavaScript 的一部分,您不需要任何外部库即可使用它。