我最近了解到,我不能通过 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文件中的数据转换并自动下载?
最佳答案
我认为“下载”不是有效的内容处理类型。尝试改用“附件”。
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/