gpt4 book ai didi

javascript - 为什么在下载文件时 fetch 一直中断,而在浏览器中手动下载却没有?

转载 作者:行者123 更新时间:2023-11-30 19:37:21 25 4
gpt4 key购买 nike

我正在使用 fetch 下载文件,但在使用 fetch 时我遇到了一个问题,而当我在浏览器上手动下载文件时却没有出现这个问题。也许我在这里遗漏了什么?

代码如下所示:

fetch(link).then(res => {
let writeStream = fs.createWriteStream(destinationPath)
writeStream.on('close', callback);

res.body.pipe(writeStream)
})

很多时候流只是挂起,所以我添加了一个 settimeout 来重新尝试下载。有时需要多次尝试才能完成。使用浏览器时不会发生这种情况(如果很少发生)。是否有一些我应该调整的设置,以便 fetch 在这里正常工作?还是我的代码不正确?

示例下载文件为:link

更新:忘记提及我在服务器上使用 Node 获取。

谢谢!

最佳答案

如果下载在浏览器栏中有效,并不意味着它也适用于 fetch。如果您使用 fetch,他们的服务器必须允许跨源请求。

使用fetch时,可以通过response对象查看响应状态。

请记住,fetch 在 Node 中不起作用,fs 在浏览器中不起作用。

检查抓取状态

fetch("https://bulkdata.uspto.gov/data/trademark/dailyxml/applications/apc190416.zip")
.then(res => {
console.log("download status:")
console.log(res.ok)
console.log(res.status)
return res
})

关于javascript - 为什么在下载文件时 fetch 一直中断,而在浏览器中手动下载却没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55796508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com