Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么fetch在下载文件时会一直中断,而在浏览器中手动下载不会';T_Javascript_Node.js_Fetch - Fatal编程技术网

Javascript 为什么fetch在下载文件时会一直中断,而在浏览器中手动下载不会';T

Javascript 为什么fetch在下载文件时会一直中断,而在浏览器中手动下载不会';T,javascript,node.js,fetch,Javascript,Node.js,Fetch,我正在使用fetch下载一个文件,当我在浏览器上手动下载文件时,使用fetch时会遇到一个问题。也许我遗漏了什么 代码如下所示: fetch(link).then(res => { let writeStream = fs.createWriteStream(destinationPath) writeStream.on('close', callback); res.body.pipe(writeStream) }) 很多时候,流只是挂起,所以我添加了一个settimeo

我正在使用fetch下载一个文件,当我在浏览器上手动下载文件时,使用fetch时会遇到一个问题。也许我遗漏了什么

代码如下所示:

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

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

下载文件示例如下:

更新:忘记提到我正在服务器上使用节点获取


谢谢

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

使用fetch时,可以使用response对象检查响应状态

请记住,
fetch
在节点中不起作用,
fs
在浏览器中不起作用

检查提取状态


如果这是node.js,什么是
fetch
?如果这是一个客户端脚本,那么什么是
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
    })