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

React Native+Axios移动端请求报错TypeError: Network request failed解决咨询

问题原因分析

核心原因是目标服务器的SSL证书不被React Native信任,Postman的提示“unable to certify the first certificate”是关键线索:

  • Postman默认会自动绕过部分证书校验(或用户手动关闭了校验),所以能正常请求;
  • React Native默认会严格校验SSL证书,当服务器证书为自签名、过期,或根证书不在系统信任列表中时,就会触发TypeError: Network request failed错误。
修复方案

根据不同场景,可选择以下方式解决:

1. 临时关闭axios的SSL校验(仅开发环境使用)

开发阶段测试时,可让axios忽略证书验证,但生产环境绝对禁止使用,会带来严重安全风险:

import axios from 'axios';
import https from 'https';

// 创建带配置的axios实例
const axiosInstance = axios.create({
  httpsAgent: new https.Agent({  
    rejectUnauthorized: false
  })
});

// 使用该实例发送请求
axiosInstance.post(path, {
  apiToken: loggedToken,
  pf: loggedpf
}).then(function(response) { 
  // 原逻辑代码
  if(response.data.msg==1){
      setprofilePic(response.data.profile[0]['Epic'])
      setisLoading(false);
      setdataSource(response.data.profile);
  }
  else if(response.data.msg==2){
      showError(response.data.message);
      navigation.navigate('auth');
  }
  else if(response.data.msg==0){
      showError(response.data.message);
  }
})

2. 配置信任自定义证书(生产环境推荐)

若服务器使用自签名证书,正确做法是将证书加入React Native项目的信任列表:

  • 先导出服务器的PEM格式证书;
  • Android端:将证书放入android/app/src/main/res/raw目录,修改(或创建)network_security_config.xml,添加信任该证书的配置;
  • iOS端:把证书添加到Xcode项目,在Info.plist中配置NSAppTransportSecurity规则,允许信任该证书。

3. 更换合法SSL证书(最优解)

正式项目建议使用权威CA机构颁发的合法SSL证书(比如Let's Encrypt的免费证书),彻底解决证书信任问题,同时保障请求安全。

补充说明

你当前的axios代码逻辑本身无问题,故障出在网络层的证书校验环节。另外也可确认移动端设备能否正常访问目标服务器网络(如是否在同一局域网、有无代理拦截等),但结合Postman的提示,证书问题是核心诱因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 20:14:54