Next.js 13.2 Route API问题:无法获取POST请求的Body值
Next.js 13.2 Route API 获取POST请求Body失败的解决方法
在Next.js 13.2的App Router Route Handler中,直接访问request.body.prompt是错误的——request.body本质是一个ReadableStream,并非已解析完成的JSON对象,必须先调用解析方法才能提取数据。
正确的POST请求处理代码
export async function POST(request) { // 解析JSON格式的请求体 const body = await request.json(); console.log("Request prompt:", body.prompt); // 返回JSON格式响应,需手动序列化并设置响应头 return new Response(JSON.stringify({ response: body.prompt }), { headers: { "Content-Type": "application/json" }, }); }
关键注意点
- 必须使用
await request.json()异步解析请求体,这是获取JSON格式参数的标准方式 - 返回
Response时,要将响应对象转为JSON字符串,同时指定Content-Type: application/json,确保客户端能正确解析响应
内容的提问来源于stack exchange,提问作者Leon van Zyl
相关产品推荐
相关产品推荐

