gpt4 book ai didi

javascript - AngularJS应用程序不下载文件

转载 作者:行者123 更新时间:2023-12-02 17:08:12 25 4
gpt4 key购买 nike

我有一个 Rails 服务器,它可以根据 http 请求生成 csv,如下所示:

@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')

以及一个从服务器请求此 CSV 文件的 AngularJS 应用程序

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 不是一个函数。

最佳答案

文件没有方法保存 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){});功能

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

关于javascript - AngularJS应用程序不下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25065774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com