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

Expo+Axios在iOS上GET请求报Network Error,Android/Web正常

解决方案:Expo iOS端Axios GET请求失败问题

1. 检查并配置iOS ATS(App Transport Security)

iOS默认对网络请求有严格的安全限制,即使是HTTPS域名也可能因配置问题被拦截。在app.json中添加目标域名的ATS例外配置:

{
  "expo": {
    // 其他原有配置...
    "ios": {
      "infoPlist": {
        "NSAppTransportSecurity": {
          "NSExceptionDomains": {
            "你的pythonanywhere域名.com": {
              "NSIncludesSubdomains": true,
              "NSExceptionAllowsInsecureHTTPLoads": false, // 正式环境保持false,测试可临时设为true
              "NSExceptionRequiresForwardSecrecy": false
            }
          }
        }
      }
    }
  }
}

上线前务必确保后端使用合法的SSL证书,避免依赖NSExceptionAllowsInsecureHTTPLoads绕过安全校验。

2. 修正Axios GET请求的参数/Headers处理

GET请求的参数需放在params字段而非data,同时校验Token的传递格式:

const verifyUser = useCallback(async () => {
  const token = await _retrieveData("authToken");
  try {
    const response = await axios.get("https://你的域名.com/api/verify", {
      params: {
        // 此处放置GET请求所需参数,如user_id等
      },
      headers: {
        Authorization: `Bearer ${token}`, // 确认Token前缀(如Bearer)是否符合后端要求
        "Content-Type": "application/json"
      }
    });
    console.log(response.data);
  } catch (error) {
    console.error("GET请求失败详情:", error);
  }
}, []);

检查自定义useApi Hook中是否统一处理了GET请求的参数逻辑,避免误将参数放入data导致请求格式错误。

3. 确认Django后端CORS配置

确保Django的CORS中间件允许iOS端请求,在settings.py中调整配置:

INSTALLED_APPS = [
    # 其他应用...
    'corsheaders',
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware', # 需放在CommonMiddleware之前
    'django.middleware.common.CommonMiddleware',
    # 其他中间件...
]

# 测试环境可允许所有来源,上线后替换为具体域名
CORS_ALLOW_ALL_ORIGINS = True
# 上线时指定允许的域名
# CORS_ALLOWED_ORIGINS = [
#     "exp://你的Expo测试地址",
#     "https://你的正式App域名",
# ]

# 确保GET方法被允许
CORS_ALLOW_METHODS = [
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
]

4. 调试排查步骤

  • 清除Expo缓存后重新运行:执行expo start --clear,避免旧配置残留。
  • 切换到iOS真机测试:模拟器可能存在代理或网络环境问题,真机测试更贴近真实场景。
  • 抓包对比差异:使用Charles等工具抓取iOS端的请求,对比正常API工具的请求Headers、参数编码是否一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:57:05