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

Expo React Native项目iOS真机Axios网络错误求助

Expo iOS真机Axios网络错误问题解决方案

这是Expo + iOS真机调试时的常见问题,根本和CORS无关——CORS是浏览器端的安全限制,React Native并不遵循这套规则,模拟器和Postman能正常请求也印证了这一点。下面是几个简单直接的排查和解决步骤:

  • 替换API地址的localhost/127.0.0.1
    模拟器能直接访问电脑的localhost,但真机和电脑不在同一本地环境。把请求地址换成电脑的局域网IP(比如http://192.168.1.100:3000/api/register),同时确保手机和电脑连在同一个WiFi下。

  • 临时关闭电脑防火墙/杀毒软件
    不少防火墙会拦截真机对本地服务器的请求,关闭后再测试,大概率能解决问题。

  • 允许iOS明文HTTP请求(如果API用的是HTTP)
    iOS默认会阻止非HTTPS的网络请求,可在项目根目录的app.json里添加配置:

    {
      "expo": {
        "ios": {
          "infoPlist": {
            "NSAppTransportSecurity": {
              "NSAllowsArbitraryLoads": true
            }
          }
        }
      }
    }
    

    注意:上线前必须切换到HTTPS,或者配置特定域名的例外,避免App Store审核被拒。

  • 替换Axios适配器
    偶尔Axios默认适配器在iOS真机上有兼容性问题,试试axios-adapter-react-native:

    1. 安装依赖:npm install axios-adapter-react-native
    2. 修改Axios实例:
    import axios from 'axios';
    import axiosAdapter from 'axios-adapter-react-native';
    
    const api = axios.create({
      baseURL: 'http://你的局域网IP:端口',
      adapter: axiosAdapter
    });
    
  • 先验证网络连通性
    在真机Safari里直接输入API地址,看能不能正常返回数据。如果Safari也打不开,那就是网络连通问题,和代码无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 10:49:56