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

React项目中使用Axios传递ApiKey报401未授权问题排查

问题排查与修复

你的代码中请求头写法错误,导致API无法识别授权信息,返回401未授权。

错误原因

你将Authorization设置为嵌套对象,但HTTP请求头的字段值必须是字符串,不能是对象。同时,根据你描述的Postman操作,实际需要的请求头格式和当前写法不匹配:在Postman选择「Api Key」授权类型、填写Key为ApiKey时,Postman会自动在请求头中添加名为ApiKey的字段,值为你的密钥(而非嵌套在Authorization里)。

另外,你误用了useState钩子,发送网络请求这类副作用操作应该使用useEffect。

正确写法

情况1:匹配Postman的请求头格式(推荐)

直接在headers中添加ApiKey字段:

useEffect(() => {
    const getAcc = async () => {
        try {
            const res = await axios.get(url, {
                headers: {
                    "ApiKey": `${api_key}`
                }
            });
            console.log("resPonseAdd", res)
        } catch (error) {
            console.log("myError", error)
        }
    }

    getAcc()
}, [url, api_key])

情况2:若API要求用Authorization头(部分API会这样定义)

如果API授权格式为Authorization: ApiKey <你的密钥>,则写法如下:

useEffect(() => {
    const getAcc = async () => {
        try {
            const res = await axios.get(url, {
                headers: {
                    "Authorization": `ApiKey ${api_key}`
                }
            });
            console.log("resPonseAdd", res)
        } catch (error) {
            console.log("myError", error)
        }
    }

    getAcc()
}, [url, api_key])

额外提示

你可以在Postman中点击「Headers」标签,查看发送请求时实际携带的请求头,确认正确的字段名和格式,再对应调整代码即可。

内容的提问来源于stack exchange,提问作者Omokefe Ovie David

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 16:12:25