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

ReactJS调用API出现“Authentication credentials were not provided”错误求排查

问题排查与修复方案

核心问题:Axios GET方法参数顺序错误

Axios的get方法签名为axios.get(url[, config]),你当前将data作为第二个参数传入,导致包含Authorization头的config未被正确识别,请求头根本没带上Token,这就是后端返回"Authentication credentials were not provided"的直接原因。

另外需要注意:GET请求规范上不会在请求体中传递数据,若后端接口要求传参,要么将参数转为URL查询参数,要么改用POST请求。

修复后的代码方案

方案1:改用POST请求(适配接受POST传参的后端接口)

import axios from '../axios/axios.js';
import { getAuthenticationToken } from '../utils.js';

export const duplicateAssessment = async (data) => {
    const token = getAuthenticationToken();
    console.log('token', token);
    const config = {
        headers: {
            Authorization: `Bearer ${token}`,
        },
    };
    // POST方法支持url、请求体、配置参数的顺序
    return axios.post('/assessment/duplicate_assessment/', data, config);
};

方案2:保留GET请求,将data转为URL查询参数

import axios from '../axios/axios.js';
import { getAuthenticationToken } from '../utils.js';

export const duplicateAssessment = async (data) => {
    const token = getAuthenticationToken();
    console.log('token', token);
    const config = {
        headers: {
            Authorization: `Bearer ${token}`,
        },
        params: data // 将data转为URL查询参数
    };
    // GET方法仅传递url和配置参数
    return axios.get('/assessment/duplicate_assessment/', config);
};

额外排查点

  • 确认getAuthenticationToken()返回的Token有效,检查控制台输出的token是否为空、格式错误(比如多余空格)
  • 验证后端接口的认证头格式要求,部分后端可能不需要Bearer 前缀,或使用其他认证标识
  • 检查Axios实例(../axios/axios.js)是否存在全局拦截器,是否会覆盖或清空自定义的Authorization头

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 16:30:43