Next.js服务端API端点无法接收POST请求数据问题求助
问题分析与解决步骤
核心错误点
- 混用路由规范:你采用了App Router的
POST函数导出写法,但参数类型用的是Pages Router的NextApiRequest/NextApiResponse,两者不兼容。 - 请求体解析错误:App Router中
NextRequest对象无法直接读取req.body,必须通过req.json()方法解析JSON格式的请求体。 - 响应返回不规范:应使用Next.js提供的
NextResponse.json()返回响应,而非原生Response.json()。
修正后的代码
import { NextRequest, NextResponse } from 'next/server' export async function POST(req: NextRequest) { // 解析JSON格式的请求体 const data = await req.json(); console.log("this is data I recieved => " + data.response); // 按规范返回响应 return NextResponse.json({ message: "I am response for route test2!!!!", test: data }); }
额外注意事项
- 确保API路由文件放在
app/api/[你的路由名]/route.ts路径下,符合App Router的目录结构要求。 - 使用Postman测试时,务必设置请求头
Content-Type: application/json,并在Body中传入合法的JSON格式数据。
内容的提问来源于stack exchange,提问作者Q-man
相关产品推荐
相关产品推荐

