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

React Native中Axios未调用后端服务器问题求助

问题分析

你的代码存在几个关键问题,导致Axios POST请求未正常执行或无法追踪执行状态:

  1. 异步操作未等待:Axios.post是异步函数,但你直接在其后同步执行alert和navigation.replace,页面跳转时请求可能还未完成,且无法感知请求失败。
  2. 缺少错误捕获逻辑:没有处理请求异常,无法得知请求失败的具体原因(如网络不通、IP错误、平台权限限制等)。
  3. 平台网络限制:React Native默认对HTTP明文请求有严格限制,尤其是Android 9+和iOS平台,可能直接拦截请求。
修复方案

1. 改造save函数为异步逻辑并添加错误捕获

将save改为async函数,用try/catch包裹请求流程,确保请求完成后再执行页面跳转,同时捕获并打印错误信息:

async function save() {
    const userData = {
        matricule,
        nom,
        prenom,
        username,
        specialite,
        email,
        password
    };
    console.log(userData);
    try {
        const res = await Axios.post("http://192.168.1.1:8080/api/save", userData, {
            headers: {
                'Content-Type': 'application/json',
                'Accept': 'application/json'
            }
        });
        console.log(res.data);
        alert("User Registration Successfully");
        navigation.replace('Login');
    } catch (error) {
        // 打印详细错误信息,方便排查
        console.error("Registration failed:", error.response?.data || error.message);
        alert("Registration failed. Please check your input or network.");
    }
}

2. 配置React Native网络权限

Android 端

  • 在android/app/src/main/AndroidManifest.xml中添加网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    
  • 针对Android 9及以上版本,允许明文HTTP请求,在<application>标签中添加:
    android:usesCleartextTraffic="true"
    

iOS 端

在ios/[你的项目名]/Info.plist中添加ATS配置,允许HTTP请求:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

3. 额外排查要点

  • 确认后端IP正确性:确保手机/模拟器和后端服务器在同一局域网,用ipconfig(Windows)或ifconfig(Mac/Linux)查看后端实际局域网IP,替换代码中的192.168.1.1。
  • 初始化useState默认值:避免undefined导致请求数据格式异常,例如:
    const [nom, setNom] = useState('');
    const [prenom, setPrenom] = useState('');
    // 其他state字段同理设置空字符串默认值
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 18:57:05