javascript - 使用 AJAX 请求下载文件数据 - ruby​​ on rails 3

标签 javascript jquery ruby ajax ruby-on-rails-3

我最近了解到,我不能通过 ruby​​ on rails 中的单个 HTTP 请求下载超过 1 个文件,除非我使用 AJAX 请求。我现在正在想办法做到这一点。

(我在 Rails 3 上使用 Prawn 作为 PDF 创建器和 Ruby) 我的 Controller 中有一个呈现 PDF 并使用 send_data 的操作

def download_quote          
pdf = QuotesPdf.new(params)
send_data pdf.render, filename: "foo.pdf",
                    type: "application/pdf",
                    disposition: "download"
end

然后我的 HTML View 中有一个按钮,它有这个有效的 Jscript 代码

// AJAX, download
function ajaxRequest(){
    $.ajax({
      type: 'POST',
      url: '/download_quote/126',
      success: function(data){
        alert(data);
      }
    });
    return false;
  }

  $("#mydownload").click(ajaxRequest);

当我在渲染 PDF 几秒钟后单击“#mydownload”时,我收到一个成功的警告框,其中包含内部数据,我认为是所有 PDF 文件。

问题是:如何将pdf文件中的数据转换并自动下载?

最佳答案

我认为“下载”不是有效的内容处理类型。尝试改用“附件”。

Content Disposition

def download_quote          
    pdf = QuotesPdf.new(params)
    send_data pdf.render, filename: "foo.pdf",
        type: "application/pdf",
        disposition: "attachment"
end

关于javascript - 使用 AJAX 请求下载文件数据 - ruby​​ on rails 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13087051/

相关文章:

javascript - 为什么这些字符被视为大写?

javascript - 有没有办法将 for 循环的索引传递给按钮对象(jQueryUI-dialog)中的单击函数?

javascript - jQuery/Javascript Cookie 和返回值的变量 [object Object]

jquery - 使用 django 和 ajax 显示表单错误

ruby-on-rails - Ruby on Rails *功能*部署的最佳实践?

ruby-on-rails - Carrierwave通过url获取图片

javascript - 如何在选择 future 日期时禁用 html 日期输入类型?

javascript - 按下 React-native 按钮会执行 3 次 Firebase 数据库更新中的 2 次

带有 Coldfusion 远程数据源的 jQuery 自动完成

ruby - 如何在ruby中的模块中声明函数