在SPA中下载文件

如何在单页面应用程序中设置文件下载,而不触发重新加载?

我遇到了在服务器上生成PDF文件并需要下载到客户端的情况。 将它作为应用程序/八位字节流发送在SPA中没有任何用处,因为无法通过AJAX发送文件。

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

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


在SPA应用程序中,我写了一段时间后, window.location.href = '...'完成了大部分浏览器的工作并正常工作,但正在下载的页面的contentType和content-disposition标题是最大的区别。 如果浏览器能够将文件识别为某种类型,那么SPA很可能不会在重定向时中断。 另外,像Angular这样的简单说明SPA框架有时会允许在标签上使用target='_new'target='_self'而不会干扰路由等。

链接地址: http://www.djcxy.com/p/77031.html

上一篇: Downloading files in a SPA

下一篇: Regular expression for matching date