对我来说这是一个长期存在的问题,我根本找不到解决方法。
在我的本机反应项目(react-native-cli)中,我使用axios包将请求发送到服务器。 但是,当我使用Android手机进行测试时,它会显示[错误:网络错误]。 有了模拟器,就可以了。
我确定这不是后端问题,因为我已经测试了多台服务器。 而且我也改用fetch,但出现了相同的错误。
这是版本信息。
"axios": "^0.19.0",
"react": "16.9.0",
"react-native": "0.61.5",
有时,它也在Android手机上运行。 这个问题是最大的谜,我受了很长时间。
遇到此问题的人,请让我活着。 谢谢您的仔细阅读。
有时,即使使用Android模拟器也无法使用。但是在删除原始模拟器并创建新的模拟器之后,它就可以使用了。
const serverUrl = "https://server.com";
axios.post(serverUrl + "/api/candidates/login", {
"email": this.state.email ,
"password": this.state.password
}, {
headers: {
'Content-Type': 'application/json'
}
}).then((response) => {
console.log(response.data);
}).catch((error) => {
console.log(error);
})
答案 0 :(得分:0)
我认为这是http和https请求的问题。因此,启用https请求的方法如下:
实现此目的的简单方法是在您的AndroidManifest.xml
上使用此属性,您可以在其中为所有请求使用所有http
:
android:usesCleartextTraffic="true"
答案 1 :(得分:0)
对于 Android,不要使用:localhost
,而是使用 10.0.2.2
。
答案 2 :(得分:-1)
尝试在AndroidManifest.xml中添加以下代码
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />