javascript - 使用ajax下载文件

标签 javascript ruby-on-rails ajax file download

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

之前,我先将所需的对象保存在数据库中,然后 Controller 可以将其格式化为.ics,调用相同的操作,然后下载文件。

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

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

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

render :text => @calendar.to_ical

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

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

最佳答案

简短的回答是您不能使用 AJAX 下载文件(出于安全原因)。查看this question对于其他选项,例如设置 window.location= 或使用 jQuery File Download插件。

关于javascript - 使用ajax下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29319433/

相关文章:

javascript - 在 Ajax 成功和页面加载时运行 JS 函数

javascript - ng-click 图像以选中单选框

ruby-on-rails - 为什么 Rails 3.2.2 新应用程序不在资源路径中包含 lib/assets ?

ruby-on-rails - 未通过 ActiveAdmin 触发 after_destroy 回调

ruby-on-rails - 找不到有效的 gem 'mysql2-0.3.18.gem'

javascript - 使用Ajax注入(inject)表单,获取其输入值

javascript - Fetch Api 无法从 PHP 服务器获取 Session

javascript - 您可以直接从 Javascript 中的数组填充对象的键吗?

javascript - kurento-client-js 的 Webpack 构建中的循环引用

php - 当通过常规表单提交或 Ajax 请求访问时使浏览器重定向的表单 - 这可能吗?