如何解决React Native调用Express后端API时的Axios网络错误?
React Native Axios Network Error 排查与解决
针对你遇到的React Native调用本地后端API出现[AxiosError: Network Error]的问题,核心原因和解决方法如下:
1. 替换localhost为电脑局域网IP
React Native模拟器/真机的localhost指向设备自身,而非你的开发电脑。必须把请求地址换成电脑在局域网的实际IP:
- Windows:打开命令提示符,输入
ipconfig,找到IPv4地址(比如192.168.1.105) - Mac/Linux:打开终端,输入
ifconfig或ip addr,找到对应网卡的IPv4地址
修改你的请求代码:
// 替换成你的电脑IP const axiosInstance = axios.create({ baseURL: "http://192.168.1.105:5000" }) // 或者直接调用 await axios.get('http://192.168.1.105:5000/all') .then(abc => console.log(abc.data)) .catch(err => console.log(err))
2. 确保后端服务绑定到0.0.0.0
如果你的后端仅绑定127.0.0.1,则只能被电脑自身访问,模拟器/真机无法连接。修改后端启动代码:
// 原来可能是 app.listen(5000),改成: app.listen(5000, '0.0.0.0', () => { console.log('服务运行在 http://0.0.0.0:5000') })
3. 验证网络连通性
在模拟器/真机的浏览器中访问http://你的IP:5000/all,如果能正常返回JSON数据,说明网络和后端没问题,再排查React Native代码;如果浏览器也访问失败:
- 检查电脑防火墙是否允许5000端口的入站请求
- 确认后端服务确实在运行
4. 简化CORS配置
你当前的CORS自定义回调可能存在潜在问题,先改用默认配置测试:
// 替换原来的自定义CORS配置 const cors = require('cors') app.use(cors())
内容的提问来源于stack exchange,提问作者Rose Rawal
相关产品推荐
相关产品推荐

