我已经在nextjs中设置了一个简单的api路由,并尝试解析正文以获取发布请求数据,但是当我使用语法console.log(req.body.name)
如果我将请求正文console.log(req.body)
输出到控制台,则得到的内容类似于纯字符串:
------WebKitFormBoundaryMJBujN4oNXLxcU96
Content-Disposition: form-data; name="name"
bilbo.com
------WebKitFormBoundaryMJBujN4oNXLxcU96
Content-Disposition: form-data; name="price"
2995
------WebKitFormBoundaryMJBujN4oNXLxcU96--
这是函数:
export default (req, res) => {
console.log(req.method);
console.log(req.body);
console.log(req.body.name);
res.status(200).json( { items: [ { req : req.method } ] } )
}
以及请求标头中的数据:
答案 0 :(得分:0)
这个问题已经很老了,但如果其他人碰巧到了这里:
<块引用>req.body - 包含按内容类型解析的正文的对象,如果没有发送正文,则为 null
这意味着如果要将 req.body 解析为 JSON,则必须在请求标头中设置 'Content-Type': 'application/json' 标头:
fetch(url, {
body,
method,
headers: new Headers({
'Content-Type': 'application/json',
Accept: 'application/json',
}),
})