代码之家  ›  专栏  ›  技术社区  ›  nitecoder

通过ajax下载csv

  •  5
  • nitecoder  · 技术社区  · 15 年前

    可以使用ajax从web应用程序下载生成的csv文件吗?如果是这样的话,有没有人可以指点我?

    编辑:很抱歉,我应该提到我正在使用prototype的ajax.request,我在firebug的响应工具中看到了,生成的csv就是响应,我只需要让它在ajax.request生成后弹出save file选项

    4 回复  |  直到 13 年前
        1
  •  4
  •   Luke P M    15 年前

    这是ajax请求的已知限制,您将需要使用js,如:

    window.location='download-csv.rb';
    

    而不是使用ajax请求。另一种方法是更改隐藏iframe的位置,但它有自己的pro/con。

    无论发送什么http头,都不会收到ajax请求来显示“文件保存”对话框。

        2
  •  1
  •   Ron DeVera    15 年前

    根据您最近的编辑,要使csv文件触发文件下载(而不是在浏览器中呈现),不需要ajax。

    相反,解决方案是让后端系统在请求csv文件时添加此http头:

    Content-disposition: attachment; filename=<your_filename.csv>;
    

    这里的实现取决于您使用的后端系统。如果您正在使用rails(正如您的用户名所建议的那样),下面是一个开始:

    filename = 'your_filename.csv'
    headers['Content-Type'] = 'text/plain'
    headers['Content-Disposition'] = "attachment; filename=\"#{filename}\""
    render :layout => false
    
        3
  •  0
  •   Ignacio Vazquez-Abrams    15 年前

    下载并不是问题;您可以通过xmlhttprequest下载任何喜欢的数据。最困难的是分析它。有几种解析方法,从regex到字符串索引。

        4
  •  0
  •   Scott Evernden    15 年前

    您可以使用“ajax”下载 任何东西 …有些人会说,在这种情况下,您不应该称之为ajax,因为这个术语专门用于下载xml。但实际上它只是一种机制,不需要重新加载页面就可以将数据输入到客户端。如果你在加载html,它会被称为ahah,对于csv,我想你会称它为ahac或ajac?…

    推荐文章