我在 nextjs 中设置了一个简单的 api 路由,并尝试解析 post 请求数据的正文,但当我使用语法时得到“未定义”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--
Run Code Online (Sandbox Code Playgroud)
这是函数:
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 } ] } )
}
Run Code Online (Sandbox Code Playgroud)
以及请求标头中的数据:
小智 26
这个问题很老了,但是如果其他人碰巧最终来到这里:
根据文档:
req.body - 包含按内容类型解析的正文的对象,如果没有发送正文,则为 null
这意味着如果您想将 req.body 解析为 JSON,则必须在请求标头中设置 'Content-Type': 'application/json' 标头:
fetch(url, {
body,
method,
headers: new Headers({
'Content-Type': 'application/json',
Accept: 'application/json',
}),
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13688 次 |
| 最近记录: |