我正在使用nodejs和expressjs框架从服务器下载文件'jsonFile.json'。
我使用以下代码
res.get('/download', function(req, res) {
res.setHeader('Content-disposition', 'attachment; filename=jsonFile.json');
res.setHeader('Content-Type', 'text/json');
res.download(__dirname + 'jsonFile.json');
}
});
但这导致对整个文件内容的响应。
我希望浏览器让我将文件保存在本地磁盘中。
如何将文件保存在本地磁盘中。???
让Express设置正确的标题,然后执行以下操作:
res.get('/download', function(req, res) {
res.download(__dirname + 'jsonFile.json', 'jsonFile.json');
});
(Qazxswpoi)
编辑:因为您通过AJAX调用请求doc,您必须更改您的设置,因为大多数(所有?)浏览器在这种情况下不会显示下载对话框。
相反,您可以从前端代码创建一个新窗口来触发对话框:
/download
只是为了证实@robert说的话,
因为这件事让我头脑转了两天,而不是使用ajax调用,用你的ajax请求位置打开一个新窗口,例如:
window.open('/download?foo=bar&xxx=yyy');
希望这有助于某人。