React Native请求本地后端API出现AxiosError: Network Error求助
React Native调用本地后端API出现AxiosError: Network Error的解决方案
以下是针对该问题的排查和解决步骤:
1. 修正本地服务地址
React Native模拟器/真机的localhost并非指向电脑的本地服务,需替换为对应地址:
- Android模拟器:使用
10.0.2.2(模拟器内置的电脑localhost映射地址) - iOS模拟器:可直接用
localhost,或电脑的局域网IP - 真机设备:必须使用电脑的局域网IP(如
192.168.1.100),且设备与电脑处于同一Wi-Fi网络
修正后的请求示例:
await axios.get("http://10.0.2.2:8000/admin/api/getcategories", { headers: { "Content-Type": "application/json", } }) .then(result => { console.log(result); }) .catch(err => { console.log(err); });
2. 修复Axios请求配置错误
原代码中请求头的写法不符合Axios规范,Content-Type需嵌套在headers字段内,而非直接作为config的顶层属性(上述示例已修正)。
3. 验证后端服务可用性
先用Postman或curl测试后端接口是否正常响应,执行命令:
curl http://localhost:8000/admin/api/getcategories
确认接口能返回预期数据,排除后端服务未启动、端口错误的问题。
4. 补充Android网络权限配置
Android 9+默认限制明文HTTP流量,需在AndroidManifest.xml的<application>标签中添加:
android:usesCleartextTraffic="true"
确保允许明文请求访问本地HTTP服务。
5. 检查电脑防火墙设置
确认电脑防火墙未拦截8000端口的入站请求,可暂时关闭防火墙测试是否能正常连接,若恢复正常则需在防火墙上添加8000端口的允许规则。
内容的提问来源于stack exchange,提问作者Shivraj Thapliyal
相关产品推荐
相关产品推荐

