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

如何在Redux Thunk的dispatch中通过Axios Post传递请求体?

解决方案

修改后的Action代码

export const subscribeUser = (id, token) => async dispatch => {
  await dispatch({
    type: t.SOME_ACTION_FETCHING,
    api: 'nameOfApi',
    method: 'createSubscription',
    // 传递URL路径参数:对应路由中的{userId}占位符
    params: {
      userId: id
    },
    // 传递POST请求体:完全匹配Postman中成功的格式
    payload: {
      subscribeToken: token
    }
  }).then(
    response => dispatch({ type: t.SOME_ACTION_FETCHED, subscriptionStatus: response })
  );
};

问题根源分析

  1. 参数位置错误:你之前把userId放在payload中,导致它被当作请求体发送,而非URL路径参数。后端路由需要userId在路径中,请求体需要subscribeToken,两者位置颠倒就会触发Swagger验证失败或路由匹配错误。
  2. 请求体格式不符:原代码的请求体是{"userId": "xxx"},和后端要求的{"subscribeToken": "xxx"}完全不匹配,这是500/409错误的直接原因。

额外排查点

如果修改后仍报错,检查项目架构的参数约定:

  • 部分封装架构会用pathParams/urlParams替代params作为路径参数的字段名
  • 确认createSubscription方法的封装逻辑,看它是否期望路径参数以特定方式传递
  • 提前console.log(token)验证传入的token值是否正确,排除空值或格式异常问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:36:19