【发布时间】:2017-04-09 20:05:13
【问题描述】:
在我的项目中,当用户单击链接时,AJAX 请求会发送创建 CSV 所需的信息。 CSV 需要很长时间才能生成,因此我希望能够在 AJAX 响应中包含生成的 CSV 的下载链接。这可能吗?
我见过的大多数答案都以以下方式返回 CSV:
return Response(
csv,
mimetype="text/csv",
headers={"Content-disposition":
"attachment; filename=myplot.csv"})
但是,我认为这与我发送的 AJAX 响应不兼容:
return render_json(200, {'data': params})
理想情况下,我希望能够在 params 字典中发送下载链接。但我也不确定这是否安全。这个问题通常是如何解决的?
【问题讨论】:
-
如果通过网络发送数据是安全的,那么通过网络发送指向数据的链接也是安全的。至于 AJAX + 文件下载,您要么必须将 CSV 作为数据发送,然后使用 JavaScript 中的
FileAPI 创建文件并在客户端下载,要么在新选项卡/窗口中打开 CSV 链接。