安卓系统上的Axios发布请求网络错误

yrefmtwq  于 2022-11-23  发布在  iOS
关注(0)|答案(3)|浏览(430)

所以我用axios在node.js服务器上发布了一个formdata对象。在iOS上一切都很完美,数据被发布,图片被上传。但是在android上我得到了这个错误

[AxiosError: Network Error]

这是我的axios调用

const handleSubmit = async (listing, { resetForm }) => {
    
    const data = new FormData();
listing.images.forEach((image, index) =>
      data.append("images", {
        name: `product${Math.floor(Math.random() * 1000)}.`,
        uri: image,
      })
    );

    const res = await axios
      .post("http://192.168.43.8:5000/products/addProduct", data, {
        headers: {
          "Content-Type": "multipart/form-data",
        },
      //tried adding this but didn't work out
        transformRequest: (data) => data,
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
        // handle error
      });
  }

}

请注意,在iOS上,它可以正常工作。这是我使用react原生调试器时的错误截图

tjvv9vkg

tjvv9vkg1#

如果您使用Android模拟器,则需要将IP更改为10.0.2.2

gt0wga4j

gt0wga4j2#

默认情况下,从android 9版本开始,http调用将被阻止,您需要将API调用设置为HTTPS,或者您需要在manifest文件中明确允许连接到此IP。请参考此SO线程。How to allow all Network connection types HTTP and HTTPS in Android (9) Pie?

mwg9r5ms

mwg9r5ms3#

对我来说,我得到了axios错误为我的模拟器,并没有得到任何错误为ios模拟器。问题与我的模拟器是,它是不能连接到互联网。
所以我为我的Mac添加了谷歌DNS服务器8.8.8.8(你可以添加任何DNS服务器),它工作了。

相关问题