javascript 无法识别 http 获取重置

问题描述 投票:0回答:1

以下 JavaScript 代码将文件分块发送到嵌入式 LWIP HTTP 服务器。

从Wireshark跟踪中可以看出,传输过程中有时会发生重置。在这种情况下,请求将被中止,但是脚本不会从中接收任何信息,并且即使出现错误也会返回

true

有人有关于如何教脚本识别此类错误的提示吗?

如果请求成功,该函数应该只返回

true
,否则调用将使用相同的块再次重复。

reset while http post

async function uploadChunk(chunk) {
  let result = false;
  const formData = new FormData();
  formData.append("file", chunk);
  sleep(10);
  
  try {
    const response = await fetch("http://" + target_ip + "/update", {
      method: "POST",
      mode: "no-cors",
      body: formData
    });
    res = await response;
    const ok_string = "OK";
    result = (response.ok & (response.statusText === ok_string));
    console.log(res);
  } catch (error) {
    console.error("Failed to upload chunk: ", error);
  }
  
  return result;
}
javascript http fetch reset
1个回答
0
投票

您不需要使用

try
catch
。只需听
response.status
并在
result
时将变量
status == 200
设置为 true。

async uploadChunk(chunk) {

  let result = false;
  const formData = new FormData();
  formData.append("file", chunk);
  sleep(10);

  let response = {};
  response = await fetch(url, {
    method: "POST",
    mode: "no-cors",
    body: formData
  });

  if(response.status == 200) {
    result = true;
  } 

  return result;
}
© www.soinside.com 2019 - 2024. All rights reserved.