【问题标题】:Use gem axlsx Ruby on Rails exporting data via AJAX not working使用 gem axlsx Ruby on Rails 通过 AJAX 导出数据不起作用
【发布时间】:2019-01-27 20:02:07
【问题描述】:

我正在使用 gem gem 'axlsx_rails',我想将数据导出到 excel 文件,但我需要通过 AJAX 将数据发送到控制器,例如在 js 中单击的复选框或选中的项目.问题是使用 ajax 数据被发送到控制器但 xlsx 文件没有下载但使用 rails Link-to 功能效果很好。

这是我在控制器中的功能。它将一个变量发送到 xlsx 文件,该文件仅呈现 username 属性。没什么大不了的。

def export_xlsx_report_table
    enterprise = current_user.enterprise
    p "Params!!"
    p params
    @user = User.where(id: params[:user_id])
end

这是我的 ajax 函数。我更改了删除最后一个 .xlsx 的网址,但仍然无法正常工作

$.ajax({
            type: "get",
            url: "/export_xlsx_report_table.xlsx",
            dataType: "json",
            data: { user_id: 1 },
            beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
        }).done(function(data){

        });

这是 html 文件。当我单击 link_to 功能时效果很好,但单击 js 功能会转到控制器但没有任何反应。

<%= link_to "Exportar reporte", export_xlsx_report_table_path(:user_id => 1, format: "xlsx"), class: 'btn btn-default btn-sm' %>

 <a onclick="report_sales.export_report()" class="btn blue"> EXPORTAR REPORTE</a>

感谢您能给我的任何帮助。

【问题讨论】:

  • 在你的帖子中写代码而不是附加图片。

标签: ruby-on-rails ruby ajax rubygems axlsx


【解决方案1】:

您不能将文件从 JS 下载到磁盘:这是一个安全问题。

请查看下面的博客文章以获得良好的解决方法 - http://johnculviner.com/post/2012/03/22/Ajax-like-feature-rich-file-downloads-with-jQuery-File-Download.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多