【问题标题】:Download File using express and fetch doesn't work使用 express 和 fetch 下载文件不起作用
【发布时间】:2022-01-12 09:58:00
【问题描述】:

我尝试使用 nodejs 和 Javascript 下载文件。 当我在浏览器中调用 URL 时,文件被下载。 当我使用 fetch 在我的 javascript 文件中调用此端点时,下载不起作用

NodeJS 端点

app.get("/download", function (req, res, next) {
    res.download(
        filepath
    );
});

Javascript 调用

const downloadFile = async (path) => {
await fetch("http://localhost:8080/download", {
    method: "Get",
})
    .then((response) => {
        console.log(response);
    })
    .catch((error) => {
        console.log(error);
    });

};

你有什么建议吗?

非常感谢!

【问题讨论】:

标签: javascript node.js express download fetch


【解决方案1】:

当您使用 Ajax 发出请求时,响应会传回 JavaScript 代码进行处理。

如果你想对服务器发送给你的文件做一些事情,那么你需要编写 JavaScript 来做一些事情。

您的 JavaScript 记录响应对象然后停止。

如果您在地址栏中输入 URL/单击链接等,浏览器只会在视口中自动呈现它/将其保存到下载中。显式执行 Ajax 可以避免这种自动处理。

所以这里的解决方案是:不要使用 Ajax。使用链接,或为location 赋值等。

【讨论】:

  • 感谢您的解释!我将按钮更改为 a 标签并将 href 属性设置为链接。现在可以了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 2013-04-12
  • 2011-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多