含义
请求格式正确但包含语义错误,服务器无法处理。以前称为 Unprocessable Entity。
常见原因
- 校验失败(邮箱无效、缺少必填字段)
- 违反业务规则
- Rails 或 Laravel 的校验错误
解决方法
客户端或访问者
阅读响应体中的字段错误,修正后重新提交。
网站或 API 的维护者
返回机器可读的字段错误,方便表单高亮显示。
响应示例
HTTP/1.1
HTTP/1.1 422 Unprocessable Content
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Unprocessable Content",
"status": 422,
"errors": [
{
"field": "email",
"message": "must be a valid email address"
}
]
} 规范
常见问题
› 校验错误应该用 400 还是 422?
很多 API 对校验错误用 422,对无法解析的输入用 400。两者都可以,保持一致即可。
› 422 只用于 WebDAV 吗?
它起源于 WebDAV,但 RFC 9110 现在已把它定义为通用 HTTP 状态码。