Ionic/Capacitor安卓调用本地API报net::ERR_CONNECTION_REFUSED求助
Ionic Capacitor安卓应用调用本地Django API连接错误解决方案
- 先修正API请求地址
安卓模拟器的网络环境与宿主电脑隔离,模拟器内的127.0.0.1指向模拟器自身而非开发电脑,需将请求的API地址替换为安卓模拟器专属的宿主映射地址10.0.2.2,例如原地址http://127.0.0.1:8000/api/xxx修改为http://10.0.2.2:8000/api/xxx。 - 调整Django服务配置
- 启动Django服务时绑定所有网卡,避免仅允许本地回环访问:
python manage.py runserver 0.0.0.0:8000- 打开Django项目的
settings.py,将10.0.2.2加入允许访问的主机列表:
ALLOWED_HOSTS = ['10.0.2.2', 'localhost', '127.0.0.1']- 若已安装
django-cors-headers处理跨域,需将前端地址加入跨域允许列表,开发阶段可临时开启全允许:
# 开发阶段临时配置,生产环境需替换为正式域名 CORS_ALLOW_ALL_ORIGINS = True - 同步Capacitor配置到安卓项目
确认capacitor.config.json(或.ts)中的cleartext配置正确后,需重新执行配置同步命令,避免修改未生效:ionic cap copy android - (可选)手动配置安卓明文访问权限
若同步后仍出现明文访问报错,可手动打开安卓项目的app/src/main/AndroidManifest.xml,在application标签中添加明文访问允许属性:<application android:usesCleartextTraffic="true" ... 其余原有配置保持不变 > - 真机调试额外配置
若使用真机测试,需保证手机与开发电脑处于同一局域网,将API地址替换为电脑的局域网IP(如192.168.3.45),同时将该IP加入Django的ALLOWED_HOSTS列表即可。
内容的提问来源于stack exchange,提问作者lando
相关产品推荐
相关产品推荐

