我在通过axios.post()
将数据发布到服务器时遇到了这个问题。当我在真实的的Android设备上运行我的应用程序时,它总是会捕获错误“网络错误”。但是当我使用android模拟器设备时,它工作正常,并返回响应。我试着使用“ngrok http 5000”,并使用ngrok给我的uri,但也不起作用。我在这一点上是绝望的,因为我的应用程序是使用QR码扫描仪和独立的通知。我无法测试它,而使用模拟器。请帮帮我!我在下面留下了我的axios.post()
方法
const login = async (email, password, navigation) => {
userState.loading = true;
axios
.post(`http://${localIP}:5000/api/user/login`, {
email,
password,
})
.then((response) => {
userState.loading = false;
userState.user = response.data;
console.log("Data: ", response.data);
navigation.reset({
index: 0,
routes: [{ name: "Home" }],
});
})
.catch((err) => {
userState.loading = false;
console.log("ERR :", err.message);
});
};
我尝试使用“ngrok http 5000”并使用ngrok给我的uri,但也不起作用。
1条答案
按热度按时间7uzetpgm1#
为了给予一个明确的答案,可能需要一点信息,但值得考虑安装调试器并检查网络请求,以查看它们在哪里出错。但这里有几件事可以尝试:
在AndroidManifest.xml文件中添加以下行:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
使用
http://my.local.ip:port
而不是http://localhost:5000
(看起来你正在这样做,如果不是,你可以通过命令提示符中的ipconfig
获得这个)尝试将
"Content-Type": "application/json", Accept: "application/json"
标头添加到Axios请求