使用 Restangular 请求从 REST API 下载文件
Download a file from REST API with Restangular request
我有一个简单的 node.js + Restify 具有标准 CORS 设置和此端点的后端:
var file = '1,5,8,11,12,13,176,567,9483';
server.get('/download', function(req, res, next) {
res.set({"Content-Disposition": "attachment; filename='numbers.csv'"});
res.setHeader("Content-type", "text/csv");
res.send(file);
return next();
}, function(err) {
res.send(err);
});
它应该做的是创建 CSV 文件并 return 它。
当我简单地在网络浏览器中输入端点地址并按下回车键时,效果很好。文件已正确下载。
但是当我尝试做同样的事情时,我没有使用浏览器的地址栏,而是像那样使用 Restangular:
Restangular.one('download').get().then(function (res) {
console.log(res);
});
它只是向控制台写入响应,但没有文件正在下载。
有没有办法使用 Restangular 做到这一点?或者也许我需要为此使用其他东西?
我不确定 Restangular 是否可以做到这一点,但我正在使用 FileSaver 脚本来处理类似的事情。将 Filesaver 添加到您的 HTML 头部,然后:
Restangular.one('download').get().then(function (res) {
var file = new Blob([res], { type: 'text/csv' });
saveAs(file, 'something.csv');
});
我有一个简单的 node.js + Restify 具有标准 CORS 设置和此端点的后端:
var file = '1,5,8,11,12,13,176,567,9483';
server.get('/download', function(req, res, next) {
res.set({"Content-Disposition": "attachment; filename='numbers.csv'"});
res.setHeader("Content-type", "text/csv");
res.send(file);
return next();
}, function(err) {
res.send(err);
});
它应该做的是创建 CSV 文件并 return 它。
当我简单地在网络浏览器中输入端点地址并按下回车键时,效果很好。文件已正确下载。
但是当我尝试做同样的事情时,我没有使用浏览器的地址栏,而是像那样使用 Restangular:
Restangular.one('download').get().then(function (res) {
console.log(res);
});
它只是向控制台写入响应,但没有文件正在下载。
有没有办法使用 Restangular 做到这一点?或者也许我需要为此使用其他东西?
我不确定 Restangular 是否可以做到这一点,但我正在使用 FileSaver 脚本来处理类似的事情。将 Filesaver 添加到您的 HTML 头部,然后:
Restangular.one('download').get().then(function (res) {
var file = new Blob([res], { type: 'text/csv' });
saveAs(file, 'something.csv');
});