【发布时间】:2019-01-05 16:26:51
【问题描述】:
继this 问题之后,我无法让浏览器从 express 启动下载。后端代码:
app.get('/download', (req, res) => {
res.download('./textfile.txt', (err) => {
if (err) {
console.log('error: ' + err);
} else {
console.log('success');
}
});
})
我已从 .gpx 文件更改为文本文件,以确保它与此无关,并且我尝试使用以下标题,但无济于事:
res.header('Content-Type', 'text/plain')
res.header('Content-Security-Policy', 'upgrade-insecure-requests');
在前端我尝试过:
window.location.href = 'localhost:3000/download';
和:
const filePath = 'localhost:3000/download';
const link = document.createElement('a');
link.href = filePath;
link.download = filePath.substr(filePath.lastIndexOf('/') + 1);
link.click();
和:
const newWindow = window.open('localhost:3000/download', 'download');
并通过 GET 请求导航到后端 url(根据对我原始问题的回复),但它们都没有在浏览器中启动下载。
我认为是前端的问题,当我在控制台中双击下载时,它会打开。前端正在获取数据,但浏览器(chrome)没有下载它。我也试过火狐,结果一样。
有很多类似的查询,但没有一个为我解决问题。
【问题讨论】:
-
在浏览器中打开网址
localhost:3000/download,查看是否下载。如果不是,那么您的快速服务器就是问题所在,或者检查开发工具中的网络面板。 -
是的,没有问题。文件自动下载。问题是我认为前端 - 我无法让浏览器在代码中启动下载。
标签: javascript node.js express