代码之家  ›  专栏  ›  技术社区  ›  Mathieu K.

Axios XMLHttpRequest-正文上的网络错误超过一定大小

  •  2
  • Mathieu K.  · 技术社区  · 6 年前

    我正在尝试使用axios从react应用程序将一个文件作为base64字符串发布到我的API。每当文件似乎超过某个大小(小到150ko)时,都不会发送请求,axios/xhr会引发网络错误:

    Error: Network Error
        at createError (createError.js:16)
        at XMLHttpRequest.handleError (xhr.js:87) 
    

    有什么想法吗?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Mathieu K.    6 年前

    使用axios的基本POST请求似乎被限制在文件大小之内。使用多部分表单数据进行上传(用我的文件填充表单)似乎可以解决pb

    Source

    但最终我们转向使用后端提供的签名uri直接上传到AWS/S3。

        2
  •  0
  •   Rahul Shakya    4 年前

    问题是您的类型:根据MIME类型,文件的类型可能无效。请检查控制台

    也可能存在重复baseURL的问题,这意味着找不到类似的NETWORK\u错误404。。因此,请参见下面的示例

     let formData = new FormData();
        formData.append("files", {
          uri: payload.uri,
          name: payload.name,
          type: `payload.type?payload.type:image/${fileExt}` //this should be a valid Mime type
        });
          axios.post(`v2/upload_comment_file`, formData, {
            headers: {
              ...(await HeaderData()),
              "Content-Type": "multipart/form-data",
            },
          });
    

    对于某些图像和文档选取器库(如35版的expo doc picker),查找mime类型可能会变得很棘手。。请尝试反应本机mime类型 https://www.npmjs.com/package/react-native-mime-types 这帮了我,也能帮到你