无法从 React Native 上传文件:"Network request failed"?

Cannot upload file from React Native: "Network request failed"?

当我尝试从我的 React Native 项目上传选定的图像时,我收到一条难以描述的错误消息:

Network request failed

这似乎是一个常见问题,但大多数人只是忘记了他们的文件类型或者在 Android 上并且遇到了 Flipper 问题。对我发现的具有相同症状的任何人都没有用。

代码:

  const localUri = result.uri;
  const filename = localUri.split("/").pop();

  const type = mime.lookup(localUri) || "image";

  const formData = new FormData();
  formData.append("file", { uri: localUri, name: filename, type });

  try {
    const file = await fetch(`${SERVER_URL}/api/upload`, {
      method: "POST",
      body: formData,
    }).then((res) => {
      console.log(res);
      return res.status === 200 ? res.text() : res.json();
    });
  } catch (e) {
    console.log(e);
  }

注意事项:

{ "name": "CAPS-FILE-NAME.jpg", "type": "image/jpeg", "uri": "file:///var/mobile/Containers/Data/Application/CAPS-PATHING/Library/Caches/ExponentExperienceData/project-src-pathing/ImagePicker/CAPS-FILE-NAME.jpg", }

尝试过的事情:

对于任何也遇到此问题的人,我转而使用 XMLHttpRequest 而不是 fetch,它现在奇迹般地工作了。不确定为什么在 RN 中 fetch 被破坏,但至少有一个解决方案。