You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中axios无法连接Django REST Framework API报网络错误

问题根因

你遇到的ERR_NETWORK报错和Django权限配置、axios本身逻辑无关,核心是本地服务地址映射错误:

  • 你在电脑端用Postman访问127.0.0.1:8000时,这个地址指向你电脑本地运行的Django服务,所以可以正常返回
  • React Native代码运行在模拟器/真机环境中,该环境下的127.0.0.1指向的是模拟器/手机自身,不是你运行Django服务的开发电脑,自然无法建立连接,公网测试接口可以正常访问也能佐证这一点。
分步解决方法

1. 替换请求地址

根据你当前的调试环境,把axios请求里的http://127.0.0.1:8000替换成对应可访问的宿主机地址:

  • Android模拟器:直接替换为http://10.0.2.2:8000,10.0.2.2是Android官方预设的、专门映射开发机本地服务的固定地址
  • iOS模拟器/真机调试:先查询开发机的局域网IP:Windows系统执行ipconfig查看当前连接网络的IPv4地址,macOS系统执行ifconfig查看en0网卡下的inet地址,一般为192.168.x.x格式,最终地址格式为http://[你的局域网IP]:8000,注意调试时手机/模拟器需要和开发机连接同一个WiFi。

2. 修改Django服务配置

地址改对后还需要调整Django的监听和访问规则,否则请求会被拦截:

  • 启动Django服务时不要默认绑定127.0.0.1,使用以下命令启动,让服务监听所有网卡的请求:
python manage.py runserver 0.0.0.0:8000
  • 打开Django项目的settings.py,将你用到的访问地址加入允许列表:
ALLOWED_HOSTS = [
    '10.0.2.2',
    '192.168.x.x', # 替换为你自己的开发机局域网IP
    '127.0.0.1',
    'localhost'
]
  • 如果项目安装了django-cors-headers处理跨域,本地开发阶段可以临时添加配置CORS_ALLOW_ALL_ORIGINS = True先验证连通性,后续再收窄允许范围。

3. 安卓端额外配置

Android 9及以上版本默认禁止明文HTTP请求,需要手动放行:
打开RN项目下的android/app/src/main/AndroidManifest.xml文件,在<application>标签中添加属性android:usesCleartextTraffic="true",否则HTTP请求会被系统直接拦截,同样报网络错误。

所有配置修改完成后,重启Django服务、重新编译安装RN应用即可正常连通接口。

内容的提问来源于stack exchange,提问作者Javier Rf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 10:18:43