我需要从javascript下载文件。我用$ .post发送json,Rails服务器生成xls文件并用send_data发回。响应有nex标题:
Content-Disposition:attachment; filename="preflist.xls"
Content-Transfer-Encoding:binary
Content-Type:application/ms-excel
如何在发布请求后下载此文件?
答案 0 :(得分:0)
根据我的理解,您需要在将数据发布到服务器后触发正常的浏览器文件下载。
有两种方法可以做到这一点:
发布成功后,您将浏览器重定向到发布文件所在的网址
如果文件的唯一来源是帖子的回复,则必须使用FileReader API,但并非所有浏览器都支持。您将使用readAsDataURL()读取帖子结果中的文件。结果是你可以结合超链接和下载属性:
<a href="{{result_of_the_readAsDataURL}}" download="{{nameOfFile}}"></a>
然后使用javascript或jQuery单击该超链接。
http://blog.teamtreehouse.com/reading-files-using-the-html5-filereader-api
希望这有帮助!