使用 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');
});