gpt4 book ai didi

javascript - 在 SPA 中下载文件

转载 作者:数据小太阳 更新时间:2023-10-29 04:17:10 26 4
gpt4 key购买 nike

如何在不触发重新加载的情况下在单页应用程序中设置文件下载?

我遇到过这样的情况,在服务器端生成了一个PDF文件,需要给客户端下载。将其作为应用程序/八位字节流发送在 SPA 中没有任何用处,因为 files can't be sent over AJAX .

我想到的最好办法是将生成的文件保存在服务器上的一个临时文件夹中,将文件的 URL 发送到客户端并执行 window.open(url)。问题是不同的浏览器打开文件的方式不同。例如,Firefox 默认情况下会在同一个选项卡中打开 PDF,使用它们的 PDF.js,破坏了整个 SPA 的想法。但是执行 window.open(url, '_blank') 通常会触发弹出窗口拦截器等。其他文件类型可能会导致天知道...

是否有跨浏览器、安全、通用的方法在 SPA 中下载文件?

最佳答案

在 SPA 应用程序中,我写了一段时间 window.location.href = '...' 做了这个技巧并且对大多数浏览器都能正常工作,但是 contentType 和 content-disposition header 正在下载的页面是最大的不同。如果浏览器可以将文件识别为可以下载的类型,那么 SPA 很可能不会在重定向时中断。另外,快速说明 SPA 框架(如 Angular)有时允许在其 a 标签上使用 target='_new'target='_self',而不会干扰路由等。

关于javascript - 在 SPA 中下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21331880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com