我需要将视图中显示的表格的内容下载为 CSV 文件。我有代码可以正确格式化表格的内容,以便可以将其存储为 .csv 文件(例如,列分隔符是逗号,表格的每条记录都在新行中)。
所以,在我的控制器中,我有以下代码:
window.location.href = '/download?data=' + encodeURIComponent($scope.csvString);
我将 NodeJs 用于服务器部分。在这里,我有以下路由处理程序:
app.get('/download', function (req, res) {
var data = req.query.data;
res.attachment('data.csv');
res.setHeader('Content-Type', 'text/csv');
res.end(data);
});
这工作得很好。下载工作正常,下载文件中的数据为完美的 CSV 格式。没有问题。
当表中的记录太多时,即数据量很大时,就会出现问题。因此,查询参数非常大,我假设它超过了限制,因此,GET 请求返回 400(错误请求)错误 - 请注意,根据我的分析,请求永远不会到达服务器,而是我观察到使用 Chrome 开发者工具请求失败。在浏览器中,URL 就是www.my_domain.com/download?data=the_lengthy_data
. 就是这样。网页为空白/空,没有下载文件。
因此,我想知道如何下载冗长的数据?我遇到的所有示例都执行 GET 请求,因此我必须将冗长的数据作为查询参数传递。还有其他方法吗?