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

Axios PUT请求出现422 Unprocessable Entity错误排查求助

问题原因及解决办法

核心问题

422错误的本质是请求参数传递方式和后端定义不匹配:

  • 前端通过Axios把gardenSize放在请求体里发送
  • 后端定义的gardenSize: str会被FastAPI默认识别为URL查询参数(即?gardenSize=xxx形式),而非请求体参数,导致无法解析参数,触发422错误

解决方法(二选一)

方法1:修改后端,接收请求体参数

用FastAPI的语法明确指定参数来自请求体,两种常用方式:

方式1.1 使用Pydantic模型(推荐,适配多参数场景)

from pydantic import BaseModel
from fastapi import Request, status

class GardenSizeRequest(BaseModel):
    gardenSize: str

@app.put("/api/updategardensize", status_code=status.HTTP_200_OK)
async def updatefeaturegarden(request: Request, req: GardenSizeRequest):
    # 通过req.gardenSize获取参数
    print(req.gardenSize)
    return {"status": "success"}

方式1.2 使用Body装饰器(适合单个参数场景)

from fastapi import Request, status, Body

@app.put("/api/updategardensize", status_code=status.HTTP_200_OK)
async def updatefeaturegarden(request: Request, gardenSize: str = Body(...)):
    # 直接使用gardenSize参数
    print(gardenSize)
    return {"status": "success"}

方法2:修改前端,传递查询参数

如果不想改动后端,把参数放在URL的查询字符串中:

await axios.put('/api/updategardensize', {}, {
    withCredentials: true,
    params: { gardenSize: 'haha' } // 自动拼接为URL后缀?gardenSize=haha
})

额外排查点

  • 确认前后端请求路径完全一致(注意大小写、末尾斜杠差异)
  • Axios默认会发送application/json请求头,FastAPI可自动解析,无需额外配置

内容的提问来源于stack exchange,提问作者C A OB1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 01:22:03