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

Redux实现心愿单添加时Authorization Token未传至后端问题

问题分析与修复

你的问题出在axios.post的参数顺序错误上。axios.post的正确语法是:

axios.post(url, data, config)

你当前的代码把config作为第二个参数传递,而这个位置原本应该是请求体data。这就导致你的请求头配置没有被正确应用,后端自然无法接收到Token,从而返回「未提供Token」的错误。

修复后的服务代码

修改addWishItem函数中的axios调用,在url之后添加一个空的请求体(如果接口不需要请求体,用null或{}占位即可),再传入config:

const addWishItem = async (id, token) => {
  const config = {
    headers: {
      Authorization: `Bearer ${token}`,
    },
  };

  // 第二个参数传空对象作为请求体占位,第三个参数传配置项
  const response = await axios.post(`${wishData}/add-wish/${id}`, {}, config);

  return response.data;
};

额外验证(可选)

因为你提到其他功能正常,说明thunkAPI.getState().auth.user.token的取值逻辑是正确的,但如果修复后仍有问题,可以在slice中添加日志确认token是否有效:

export const addToWishlist = createAsyncThunk(
  "wish/addWishItem",
  async (id, thunkAPI) => {
    try {
      const token = thunkAPI.getState().auth.user.token;
      console.log("当前获取到的Token:", token); // 确认token是否存在且格式正确
      return wishService.addWishItem(id, token);
    } catch (error) {
      const message =
        (error.response &&
          error.response.data &&
          error.response.data.message) ||
        error.message;
      return thunkAPI.rejectWithValue(message);
    }
  }
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:47:37