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

React Native iOS请求未携带Authorization头,Android端正常

iOS端请求Authorization头丢失的解决思路
  • 抓包验证实际请求头:用Charles或Proxyman等工具抓取iOS端的实际请求,确认Authorization头是否真的未被发送,不要仅依赖服务器反馈——有时服务器日志的过滤或解析逻辑可能误报。
  • 检查请求重定向情况:如果API_URL使用HTTP协议,iOS的ATS(App Transport Security)会强制重定向到HTTPS,重定向过程中Authorization头可能不会被自动携带。建议将API地址改为HTTPS,或在info.plist中配置正确的ATS规则避免不必要的重定向。
  • 改用Headers对象构造请求头:避免直接在fetch的headers参数中传入普通对象,尝试用原生Headers对象构建头信息,部分iOS环境下这种方式更可靠:
    const headers = new Headers();
    headers.append('Content-Type', 'application/json');
    headers.append('Accept', 'application/json');
    headers.append('Authorization', 'Bearer [JWT TOKEN]');
    
    await fetch(`${API_URL}/contact`, {
      method: 'POST',
      body: JSON.stringify({ message }),
      headers: headers,
    });
    
  • 排查全局网络拦截逻辑:检查项目中是否存在全局axios拦截器、fetch封装或第三方网络库,这些代码可能在iOS端意外修改或移除了Authorization头——即使注释了axios代码,残留的全局配置也可能影响fetch请求。
  • 验证服务器端解析逻辑:确认服务器对Authorization头的解析是否区分大小写,或是否存在针对iOS请求的特殊过滤规则。可以用curl模拟iOS端的请求格式,测试服务器是否能正确识别头信息。
  • 检查React Native(若适用)配置:如果是React Native项目,旧版本RN在iOS上处理fetch请求头可能存在bug,尝试升级到稳定版本。同时检查info.plist中的NSAppTransportSecurity配置,确保没有限制请求头的携带。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:01:16