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

FastAPI无法接收Axios发送的字符串数组,报422错误求助

问题原因及解决办法

核心错误点

  1. 字段名不匹配:后端Pydantic模型Item要求接收包含dates字段的对象,但你前端发送的是带mydate字段的对象,两者字段名不对应。
  2. 多余的JSON序列化:你用JSON.stringify()把数组转成了字符串,导致后端收到的是字符串类型,而非模型要求的List[str]数组类型。

前端代码修改方案

调整数据生成和请求体结构:

// 去掉JSON.stringify,直接保留数组格式
let mydate = rowData.map(x => x.Date);

const savePlan = async () => {
  try {
    console.log(mydate);
    // 把请求体的字段名改为dates,值直接传数组
    const response = await axios.post('/saveplan', { dates: mydate }, {
      headers: {
        'Content-Type': 'application/json'
      }
    });
    console.log("data saved successfully!", response.data);
  } catch (error) {
    console.error('Error saving data', error);
  }
};

验证逻辑

修改后前端发送的请求体结构为:

{
  "dates": ["2023-06","2023-07","2023-08",...]
}

该结构完全匹配后端Item模型的要求,FastAPI能正确解析数据,不会再返回422错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:54:54