当我试图在我的NodeJS服务器上创建文件下载功能时,遇到了一些意外的行为。我有一个REST(express)API调用一些导出数据函数,它会在服务器上创建一个CSV文件并使用res.download('path/to/file')
触发下载。响应头包括
Content-Disposition:attachment; filename="indicators.csv"
Content-Length:30125
Content-Type:text/csv; charset=UTF-8
看起来一切都很顺利。
问题是,我从服务器得到的响应是纯文本。响应中包含了CSV文件中的所有数据,但并没有像我预期的那样触发浏览器的文件下载对话框。 我在Chrome和FF上都尝试过了,问题仍然存在。
有什么想法吗?
更新
我通过创建一个虚拟表单,并使用其提交操作来进行AJAX调用,成功实现了目标。但这是一个不太优雅的hack,我仍在寻找更加优美的解决方案。