由于某些原因,我正在尝试从我的React前端向我的Express前端发送一个发布请求,因此正在显示我要接收的对象,以便该对象是另一个对象的键,其值是和空字符串。
这是我的onSubmit React函数
handleSubmit = event => {
event.preventDefault()
const backend = '/api/login'
fetch(backend, {
method: 'POST',
mode: 'no-cors',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
body: JSON.stringify(this.state)
})
.then(res => {
res.json()
})
.then(user => {
console.log(user)
})
.catch(err => {
console.log(err)
})
}`
我在快递服务器上的帖子功能
app.post("/login", (req, res) => {
console.log(req.body)
})
例如,如果我要发送的对象是{username: "user1", password: "password"}
,则当我console.log(req.body)
时,控制台中将显示{ '{"username":"user1","password":"password"}': '' }
。
如何解决此问题,以便获得所需的对象?
答案 0 :(得分:0)
因为它是JSON格式。要解析它,您可以使用:
JSON.parse('{"username":"user1","password":"password"}')
或JSON.parse(req.body)
答案 1 :(得分:0)
使用JSON.stringify()
的方法很好,因为它应该像字符串一样发布到服务器。但是,如果您希望它成为后端的对象,则必须使用以下方法将其解析:
const userObj = JSON.parse(req.body.Data); // it will parse it back as an object