所以我用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原生调试器时的错误截图
3条答案
按热度按时间tjvv9vkg1#
如果您使用Android模拟器,则需要将IP更改为10.0.2.2
gt0wga4j2#
默认情况下,从android 9版本开始,http调用将被阻止,您需要将API调用设置为HTTPS,或者您需要在manifest文件中明确允许连接到此IP。请参考此SO线程。How to allow all Network connection types HTTP and HTTPS in Android (9) Pie?
mwg9r5ms3#
对我来说,我得到了axios错误为我的模拟器,并没有得到任何错误为ios模拟器。问题与我的模拟器是,它是不能连接到互联网。
所以我为我的Mac添加了谷歌DNS服务器8.8.8.8(你可以添加任何DNS服务器),它工作了。