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

Axios仅在安卓端返回[Error: Network Error] iOS端运行正常

问题原因

相同请求在iOS正常、安卓端抛出Network Error是安卓平台特有的网络限制或适配问题导致的,核心原因分为以下几类:

  • SSL证书校验不通过:你的请求用了非标准HTTPS端口11443,大概率是测试环境用了自签名/过期/域名不匹配的SSL证书。iOS如果在开发阶段放开了证书校验限制可以正常请求,但安卓7及以上系统默认不信任用户安装的根证书,应用未做特殊配置时会直接拦截该类请求,抛出网络错误。
  • 网络权限或端口拦截:安卓应用未申请网络权限,或者11443端口被安卓本地防火墙、运营商网络、路由策略拦截,iOS侧的网络环境没有对应拦截规则所以可以正常访问。
  • WebView适配问题:如果你的代码运行在安卓WebView的H5环境中,安卓WebView默认的跨域限制、混合内容拦截规则比iOS更严格,未做适配时也会触发网络错误。
  • 请求格式兼容问题:部分低版本安卓系统对application/json类型的POST请求兼容异常,也会导致请求发送失败。

解决方法

你可以按以下顺序排查解决:

  1. 处理SSL证书校验问题
    测试阶段可以给安卓应用添加网络安全配置:在res/xml目录下新建network_security_config.xml,添加对应域名的证书信任规则,也可以临时放开所有证书校验(仅测试可用,禁止线上使用);线上环境必须更换为CA机构颁发的正规受信任SSL证书,确保证书域名、有效期、证书链配置正确。
  2. 检查权限与端口配置
    确认AndroidManifest.xml中已经添加网络权限声明:
    <uses-permission android:name="android.permission.INTERNET" />
    
    测试时可以将服务端端口临时改为443(默认HTTPS端口)验证是否是端口拦截问题,如果是更换端口或者联系网络服务商放开11443端口的访问限制。
  3. WebView场景适配
    如果是WebView内运行的H5代码,给WebView添加以下配置:
    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setAllowFileAccess(true);
    // 允许混合内容,仅测试阶段使用
    settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
    
  4. 兼容请求格式
    可以先打印完整错误信息确认错误类型:
    .catch(function (error) {
        console.log(error.toJSON()); // 输出完整错误信息,区分是证书错误、超时还是连接被拒
        console.error(error);
    });
    
    如果是请求格式兼容问题,可以尝试把Content-Type改为表单类型,适配低版本安卓:
    let dataToSend = new FormData();
    dataToSend.append('username', 'someUsername');
    dataToSend.append('password', 'somePassword');
    axios.post('https://some-domain.com:11443/websrc/login',dataToSend,{
        headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                }
    })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:54:01