使用 ajax 下载文件

Using ajax to download a file

我有一个 javascript 文件,它使用 ajax 并将一组 ID 传递给 rails 控制器操作。然后控制器将这些映射到模型对象并生成一个包含它们的一些数据的文件。我的问题在于下载这个文件。

以前,我是先将需要的对象保存在数据库中,然后控制器可以格式化为.ics,调用相同的操作,然后文件就会被下载。

现在一切都更加动态了,我在渲染文件时遇到了问题,因为我必须传递参数。有没有办法做到这一点?我试过了

render :layout => false, :text => @calendar.to_ical

send_data @calendar.to_ical, :type=> 'text/ics'

render :text => @calendar.to_ical

所有这些都成功完成,但没有下载任何文件。

如有任何帮助,我们将不胜感激!谢谢!

简短的回答是您不能使用 AJAX 下载文件(出于安全原因)。查看 this question for other options, like setting window.location= or using the jQuery File Download 插件。