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

React Native中Axios请求返回401,但Postman和浏览器可正常访问

React Native中Axios请求API返回401错误(Postman/浏览器可正常访问)

我在React Native应用中调用API时遇到「Request failed with status code 401」错误,请求代码如下:

const fetchData = async () => {
        try {
            const response = await axios.get(`${API_URL}/general-setting`, {
                headers: {
                    'Accept': 'application/json',
                }
            });
            const generalSetting = response.data.data.general_setting;
            const newTheme = {
                baseColor: `#${generalSetting.base_color}`,
                secondColor: `#${generalSetting.secondary_color}`,
            };
            setTheme(newTheme);
        } catch (error) {
            Alert.alert('Error Fetching Theme', 'Please check your internet connection and try again.');
        }
    };

该API在Postman和浏览器中均可正常获取响应,但多次尝试后仍无法在React Native中正常工作。


排查与解决方案

  • 补全请求头信息
    Postman和浏览器会自动携带部分默认请求头(如Cookie、User-Agent、Authorization令牌等),但当前React Native的请求仅设置了Accept头。对比Postman的请求头详情,将缺失的必要认证头(如Authorization: Bearer <token>)或会话相关头(如Cookie)添加到Axios的headers配置中。

  • 验证API地址一致性
    确认React Native中API_URL的协议(http/https)、域名、端口与Postman中使用的完全一致,避免因环境配置差异(如开发/生产地址混淆)导致认证失败。

  • 检查React Native网络配置

    • iOS:在Info.plist中配置App Transport Security(ATS)允许目标域名,或临时关闭ATS用于测试(生产环境不建议);
    • Android:确保AndroidManifest.xml添加了<uses-permission android:name="android.permission.INTERNET" />权限,同时检查网络安全配置是否允许访问目标域名。
  • 打印详细错误信息
    修改catch块,输出API返回的具体错误内容,而非仅提示网络问题,便于定位认证失败原因:

catch (error) {
    console.error('API请求错误详情:', error.response?.data || error.message);
    Alert.alert('Error Fetching Theme', error.response?.data?.message || '认证失败,请检查配置');
}
  • 禁用请求缓存
    Postman或浏览器可能缓存了有效认证信息,尝试在请求头中添加Cache-Control: no-cache,避免缓存导致的认证失效:
headers: {
    'Accept': 'application/json',
    'Cache-Control': 'no-cache'
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 06:59:53