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

为API配置.env文件后Axios请求出现403状态码错误求助

React中Axios请求API返回403错误排查方案

错误详情

AxiosError {message: 'Request failed with status code 403', name: 'AxiosError', code: 'ERR_BAD_REQUEST', config: {…}, request: XMLHttpRequest, …}

前端请求代码

useEffect(() => {
    const fetchData = async () => {
        try {
            const data = await axios.get(process.env.REACT_APP_API_URL + "/products", {
                headers: { Authorization: "bearer" + process.env.REACT_APP_API_TOKEN, }
            })
            console.log(data)

        } catch (err) {
            console.log(err)

        }
    }
    fetchData();
}, [])

.env配置内容

REACT_APP_API_TOKEN =d497def4a0c937df0c7ee1514a2975f3ab433df1557bda09405350247ff23425f1c47fabe1dbcb5433c89be91344f7557a2fe0060da7fa006570bf82ae7bb65c81f5aa469dbaaf1576ab8a28f4a65892653aebb394581423495c951c90e697d67fe1c5d08dfa10a6b834d3e06cdc37d54b837d1ec10aebabb9fb86d9adfb1600
REACT_APP_API_URL = http://localhost:1337/api

排查步骤

1. 修正Authorization头格式

你的Authorization头缺少关键空格,正确格式要求Bearer(首字母大写)后必须跟空格再拼接token。修改代码如下:

headers: { Authorization: `Bearer ${process.env.REACT_APP_API_TOKEN}` }

2. 确认.env变量是否加载成功

在fetchData函数开头添加打印,验证变量值是否正确:

console.log("API地址:", process.env.REACT_APP_API_URL);
console.log("API Token:", process.env.REACT_APP_API_TOKEN);

注意:修改.env文件后必须重启开发服务器,变量才会生效。

3. 验证API端权限

403是服务器明确拒绝访问,可能的原因:

  • Token已过期或无效,重新生成有效token测试
  • 目标/products端点需要特定权限(如管理员权限),当前账号无访问权限
  • 服务器CORS配置未允许前端域名访问,检查后端CORS设置

4. 用Postman直接测试请求

把请求复制到Postman中,手动添加Authorization: Bearer <你的token>头,测试是否能正常返回数据:

  • 如果Postman也返回403,问题出在API端或token本身,和Axios无关
  • 如果Postman请求成功,再回到前端代码排查变量拼接、环境配置问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 11:20:34