Javascript 使用angularjs、nodejs、expressjs单击按钮后,在前端下载Csv文件
我想在前端下载.csv文件 这是我的代码:Javascript 使用angularjs、nodejs、expressjs单击按钮后,在前端下载Csv文件,javascript,node.js,angularjs,mongodb,express,Javascript,Node.js,Angularjs,Mongodb,Express,我想在前端下载.csv文件 这是我的代码: $http.get('/entity/consultations/_/registerationReport' ) .success(function (data) { myWindow = window.open('../entity/consultations/_/registerationReport', '_parent'); myWindow.close(); }); 我使用jso
$http.get('/entity/consultations/_/registerationReport' )
.success(function (data) {
myWindow = window.open('../entity/consultations/_/registerationReport', '_parent');
myWindow.close();
});
我使用json2csv
converter在csv文件中进行编写
json2csv({data: report, fields: fields}, function (err, csv) {
if (err) throw err;
res.setHeader('Content-Type', 'application/csv');
res.setHeader("Content-Disposition", "attachment; filename=" + "Report.csv");
res.end(csv, 'binary');
});
但是它在浏览器上打印csv文件的数据,而不是下载csv文件。@Pawan,您的
json2csv
功能没有问题。问题在于,您正试图使用Angular的$http
服务通过XMLHttpRequest(XHR)请求触发下载。XHR调用表明您的代码将处理来自服务器的响应。因此,内容配置
标题被浏览器忽略,不会触发在浏览器上的下载
json2csv({data: report, fields: fields}, function (err, csv) {
if (err) throw err;
res.setHeader('Content-Type', 'application/csv');
res.setHeader("Content-Disposition", "attachment; filename=" + "Report.csv");
res.end(csv, 'binary');
});
据我所知,您有几种选择:
/entity/consultations/\uu/registrationreport
(使用和
标记)的链接呢$window。从角度代码打开(…)
(这将产生弹出选项卡或窗口闪烁的丑陋副作用)可能还有许多其他的解决方案,但这些是唯一能立即想到的。底线是XHR不是您想要完成的任务的合适工具。您尝试过res.download吗?