【发布时间】:2014-02-15 09:36:36
【问题描述】:
如何在单页应用程序中设置文件下载而不触发重新加载?
我遇到过一种情况,在服务器上生成了一个PDF文件,需要交给客户端下载。将其作为 application/octet-stream 发送在 SPA 中没有任何用处,因为files can't be sent over AJAX。
我想出的最好办法是将生成的文件保存在服务器上的临时文件夹中,将文件的 URL 发送到客户端并执行window.open(url)。问题是不同的浏览器打开文件的方式不同。例如,默认情况下,Firefox 在同一选项卡中打开 PDF,使用其PDF.js,破坏了整个 SPA 理念。但是执行window.open(url, '_blank') 经常会触发弹出窗口阻止程序等。其他文件类型可能会导致上帝知道什么...
是否有跨浏览器、安全、通用的方法在 SPA 中下载文件?
【问题讨论】:
-
window.open(url, '_new') 是否有同样的影响
标签: javascript single-page-application