Express处理JSON格式POST请求时请求体为空的问题求助
Express处理JSON格式POST请求时请求体为空的问题求助
各位好,我最近遇到个头疼的问题:在React项目里用fetch给Express后端发JSON格式的POST请求,但是后端始终拿不到请求体,打印出来是空对象,折腾好久都没解决,想请大家帮我看看哪里出问题了。
先贴一下我前端React里的请求代码:
const response = await fetch('http://localhost:3100/api', { method: 'POST', mode: 'no-cors', headers: { 'Content-type': 'application/json' }, // body: { "user":"1", "cmd":"Send NFT"}, body: JSON.stringify({ user: 1, cmd:"Send NFT"}), })
我试过注释里直接传对象的写法,也试过用JSON.stringify转成字符串的写法,但两种都没效果。
再贴后端Express(版本4.21.1)的代码:
const express = require('express'); const app = express(); const port = 3100; app.use(express.json()); app.get('/', (req, res) => { res.send('Hello World!'); }) app.post('/api', (request, response) => { console.log("User: " + JSON.stringify(request.body) ); if (request.body.user == 1) response.send(JSON.stringify({ user: 1, cmd: request.body.cmd})); else if (request.body.user == 2) response.send(JSON.stringify({user: 2, cmd: "Info from 1"})); }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) })
我已经加了app.use(express.json())中间件来解析JSON请求体了,但是后端打印request.body的时候始终是空对象,导致后续的判断逻辑也走不通。
有没有大佬能帮我排查下问题出在哪呀?
备注:内容来源于stack exchange,提问作者David Pawlak
相关产品推荐
相关产品推荐

