Yar*_*mer 14 javascript csv content-disposition node.js express
尝试在我的NodeJS服务器上创建文件下载功能时,我遇到了一些意外的行为.我有一个REST(快速)API,它需要一些导出数据功能,它在服务器上创建一个CSV文件并用于res.download('path/to/file')触发下载.响应头包括
Content-Disposition:attachment; filename="indicators.csv"
Content-Length:30125
Content-Type:text/csv; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)
所以一切似乎都井然有序.
问题是,我从服务器得到的响应是纯文本.响应包含CSV文件包含的所有数据,但不会像我预期的那样触发浏览器的文件下载对话框.我在Chrome和FF上都试过了.两者都存在问题.
有任何想法吗?
更新
我设法通过创建一个虚拟表单,并使用其提交操作来进行我的AJAX调用来使其工作.但这是一个丑陋的黑客,我仍然在寻找一个更优雅的解决方案.
Rom*_*nev 21
标题不是问题.问题是您通过ajax调用查询下载URL,该调用不会调用浏览器下载对话框.您的选项可归结为以下内容:
使用提交到您的下载URL的表单.用户不得不与用户进行交互,创建表单JavaScript并通过调用以编程方式提交表单form.submit- 从ajax post手动下载文件
指向window.location下载URL.你可以在当前窗口中执行此操作 - 使用ajax请求下载文件,或者使用新的请求 - res.download()在我的情况下不起作用
| 归档时间: |
|
| 查看次数: |
14087 次 |
| 最近记录: |