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

Axios GET请求无法传递Bearer Token问题求助

问题根源:Axios GET与POST方法的参数结构差异

Axios的GET方法参数格式为 axios.get(url[, config]),它没有独立的data参数(GET请求规范上不携带请求体);而POST/PUT/DELETE的参数格式是 axios.post(url[, data[, config]]),两者的参数顺序完全不同。

你当前的GET请求错误地将{chatId: "661925ba21df3cb3dc4958be"}作为第二个参数传入——这个位置本该是请求配置对象,但你额外传入了第三个参数config,导致Axios仅识别第二个参数为配置,直接忽略了第三个参数,自然请求头中不会带上Authorization Token。

修正后的GET请求代码

方式一:合并参数与配置

axios.get(
  "http://localhost:3001/api/message/",
  {
    params: { // GET请求的URL参数需放在params中,Axios会自动拼接为查询字符串
      chatId: "661925ba21df3cb3dc4958be",
    },
    headers: { Authorization: `Bearer ${token}` }
  }
)
.then(async (results) => {
  console.log(results);
})
.catch((error) => {
  console.log(error);
});

方式二:复用原config对象

const config = { 
  headers: { Authorization: `Bearer ${token}` },
  params: { chatId: "661925ba21df3cb3dc4958be" }
};

axios.get("http://localhost:3001/api/message/", config)
.then(async (results) => {
  console.log(results);
})
.catch((error) => {
  console.log(error);
});

关键说明

GET请求的URL参数必须放在配置对象的params属性中,Axios会自动将其转换为?chatId=xxx形式的查询参数;同时请求头配置需包含在同一个配置对象内,才能被Axios正确应用到请求中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:01:00