【问题标题】:AngularJS application not downloading fileAngularJS应用程序没有下载文件
【发布时间】:2014-09-23 19:17:35
【问题描述】:

我有一个从 http 请求生成 csv 的 rails 服务器,如下所示:

@results = some_json_string
require 'csv'
csv_string = CSV.open("results.csv","wb") do | csv|
        JSON.parse(@results).each do |hash|
                csv << hash.values
        end
end
send_file('results.csv')

还有一个 AngularJS 应用程序从服务器请求这个 CSV 文件

angular.module('myApp')
   .controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
     $scope.csvSubmit = function() {
      var csv = $.post('http://ip_addr:3000/api/csv', { 'input': 'my_request' });
      csv.done(function(result){
         File.save(result, function(content){
            var hiddenElement = document.createElement('a');
            hiddenElement.href = 'data:attachment/csv,' + encodeURI(content);
            hiddenElement.target = '_blank';
            hiddenElement.download = 'result.csv';
            hiddenElement.click();
      });
    });
   }
  }
])

看起来,当 Angular 应用发出 http 请求时,Rails 服务器通过 csv 文件发送。

来自 rails 日志:

 GET /professional/maintain/status/ 200 224 - - 0 2908 - -\n"}
 Sent file results.csv (0.1ms)
 Completed 200 OK in 976ms (ActiveRecord: 0.0ms)

但是,Angular 应用程序没有成功地将文件下载到客户端计算机。相反,javascript 控制台显示此错误:

Uncaught TypeError: undefined is not a function query.js:8

第 8 行是这一行:

File.save(result, function(content){

有人知道如何让这个下载正常工作吗?

编辑:这可能是一个语法问题,因为我实际上并没有编写那么多 javascript。当我看着它时,我不明白为什么它会告诉我 undefined is not a function。

【问题讨论】:

    标签: javascript ruby-on-rails angularjs csv


    【解决方案1】:

    文件没有方法保存MDN documentation,应该可以通过

    完成下载
     var hiddenElement = document.createElement('a');
            hiddenElement.href = 'data:attachment/csv,' + encodeURI('test,1234,1232,test');
            hiddenElement.target = '_blank';
            hiddenElement.download = 'result.csv';
            hiddenElement.click();
    

    没有任何 File.save(result, function(content){});功能

    在控制台中运行上述代码会使用我传入的内容开始下载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      相关资源
      最近更新 更多