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

如何在React Native Expo中启用HTTP网络请求

解决Expo React Native项目中HTTP请求的App Transport Security配置问题

正确的app.config.js配置方式

你的第二种配置写法是正确的,但大概率是因为缓存未清除导致配置未生效。以下是完整的正确配置示例:

export default {
  expo: {
    // 项目基础配置(名称、SDK版本等)
    name: "YourProjectName",
    slug: "your-project-slug",
    sdkVersion: "49.0.0", // 替换为你的Expo SDK实际版本
    // ...其他项目配置
    ios: {
      infoPlist: {
        NSAppTransportSecurity: {
          NSAllowsArbitraryLoads: true
        }
      }
    }
  }
};

关键操作与优化建议

  1. 清除缓存重启服务
    修改配置后必须清除Expo缓存并重启开发服务器,否则旧配置会被复用:

    expo start -c
    
  2. 更严谨的本地API配置(推荐)
    完全开启NSAllowsArbitraryLoads在App Store审核时可能被拒,针对本地测试的API,建议仅允许特定域名/IP:

    ios: {
      infoPlist: {
        NSAppTransportSecurity: {
          NSExceptionDomains: {
            "192.168.x.x": { // 替换为你的本地API实际IP或域名
              NSIncludesSubdomains: true,
              NSAllowsArbitraryLoads: true
            }
          }
        }
      }
    }
    
  3. 额外排查点
    如果配置生效后仍报错,检查:

    • 本地API是否正常运行,模拟器/设备能否访问该地址(模拟器中localhost需替换为电脑的局域网IP)
    • API是否返回合法的HTTP响应(可通过浏览器或Postman测试)

错误配置说明

你的第一种配置写法是错误的:Expo的infoPlist字段支持直接用JS对象映射到Info.plist的键值对,不需要通过xml数组注入原始XML内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:35:14