使用jQuery POST下载生成的文件

时间:2014-07-30 10:30:41

标签: javascript jquery ajax ruby-on-rails-3 http-post

我需要从javascript下载文件。我用$ .post发送json,Rails服务器生成xls文件并用send_data发回。响应有nex标题:

Content-Disposition:attachment; filename="preflist.xls"
Content-Transfer-Encoding:binary
Content-Type:application/ms-excel

如何在发布请求后下载此文件?

1 个答案:

答案 0 :(得分:0)

根据我的理解,您需要在将数据发布到服务器后触发正常的浏览器文件下载。

有两种方法可以做到这一点:

  1. 发布成功后,您将浏览器重定向到发布文件所在的网址

  2. 如果文件的唯一来源是帖子的回复,则必须使用FileReader API,但并非所有浏览器都支持。您将使用readAsDataURL()读取帖子结果中的文件。结果是你可以结合超链接和下载属性:

    <a href="{{result_of_the_readAsDataURL}}" download="{{nameOfFile}}"></a>

  3. 然后使用javascript或jQuery单击该超链接。

    http://blog.teamtreehouse.com/reading-files-using-the-html5-filereader-api

    希望这有帮助!