Rails:从ajax get请求下载jquery的zip文件

时间:2016-02-10 11:45:17

标签: javascript jquery ruby-on-rails ajax

我正在尝试以zip格式下载文件。我发送ajax请求,作为回应我想发送一个zip文件。但我得到错误。我的ajax请求如下

$( "#test-id" ).on( "click", function() {
    $.ajax({
        type: "GET",
        url: "<%= articles_download_path %>",
        dataType:"application/zip",
        success: function (result) {
           window.alert("success!!");
        },
        error: function (){
            window.alert("something wrong!");
        }
    });
});

和我的下载动作

  def download    
    @articles = Article.all

    respond_to do |format|
      format.zip{
        send_data(Article.zip_all_articles, :type => 'application/zip', :filename => 'articles.zip')
      }
    end    
  end

我的日志中没有错误,但在我的浏览器控制台中提供了这样的响应

PK����8dJH�/���
��������after upgrade 30.xlsx�W8\��u�0�(�A��Q��-!zDI0:3�^B�%����D��Ddt!z�������e�{�s�9��g
���W�k���I@H��H�Ǫ����V����c�n0'�����0��n�"|CF��Q��I&������C�ʘo�q��ke�XڑPJ�잝L5aNhlv�eU   V�D
ʟK�]����E�0Ё���s�9\�!��[RYqR%Ke�K���%5^�

和我的日志

Started GET "/articles/download?locale=en" for 127.0.0.1 at 2016-02-10 12:33:48 +0100
Processing by ArticlesController#download as */*
  Parameters: {"locale"=>"en"}
.
.
.
 Rendered text template (0.0ms)
Sent data articles.zip (1.0ms)
Completed 200 OK in 431ms (Views: 1.0ms | ActiveRecord: 5.0ms)

我认为我对zip文件的ajax请求格式不正确。但我通过搜索互联网找不到任何其他东西。如何解决这个问题?

0 个答案:

没有答案