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

React Native发布版中onEndEditing内Axios.Get失效问题求助

React Native发布版axios GET请求失效排查方案

可能的原因及解决步骤

1. 网络权限配置缺失

发布版应用默认不会自动开启网络权限,需手动配置:

  • Android:检查AndroidManifest.xml中是否添加<uses-permission android:name="android.permission.INTERNET" />,调试版会自动注入该权限,但发布版需要显式声明。
  • iOS:由于接口使用HTTP协议,需在Info.plist中配置NSAppTransportSecurity允许非HTTPS访问:
    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSExceptionDomains</key>
      <dict>
        <key>10.113.16.113</key>
        <dict>
          <key>NSIncludesSubdomains</key>
          <true/>
          <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
          <true/>
        </dict>
      </dict>
    </dict>
    

2. URL拼接的编码问题

直接拼接变量可能导致特殊字符编码错误,建议用axios的params参数自动处理编码:

axios.get('http://10.113.16.113:8082/api/skuattribute/find', {
  params: {
    OP: opNumber,
    line: selectedLine
  }
})

3. 错误日志无法查看

发布版中console.log的日志无法直接获取,需替换为可感知的错误提示:

.catch(error => {
  alert('请求失败:' + JSON.stringify(error));
});

4. 同步阻塞操作影响流程

代码中的sleep(200)是同步阻塞操作,发布版可能导致线程卡死,改用异步的setTimeout:

// 替换sleep(200)
setTimeout(() => {
  GetLocalAttributes();
}, 200);

5. 变量作用域或类型问题

再次确认opNumber和selectedLine的类型与值,比如是否存在数字转字符串时的隐式错误,可在请求前用alert打印变量的具体内容:

alert(`OP: ${typeof opNumber} - ${opNumber}, Line: ${typeof selectedLine} - ${selectedLine}`);

6. 后端接口的访问限制

检查后端服务器是否对设备IP、请求来源做了限制,比如仅允许调试环境IP访问,导致发布版设备请求被拦截。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:01:17