fetch('/auth/signup', {
method: 'POST',
body: this.state.user,
headers: {
'Content-Type': 'application/json'
},
})
.then(function(response) {
return response.json();
})
.then(data => {
console.log(data);
})
this.state.user 基本上是一个像 {user: {name:"someone"}
这样的对象,我的服务器端代码就是这样做的
router.post('/signup', (req, res, next) => {
console.log(req.body) // empty object
}
我认为 fetch
有问题,没有看到网络选项卡中传递的任何数据。
最佳答案
在 body
或使用 FormData
设置之前,将 this.state.user
传递给 JSON.stringify()
到 POST
键值对。 body
不期望 javascript
对象。
body: JSON.stringify(this.state.user)
let fd = new FormData();
let {user} = this.state.user;
for (let prop in user) {
fd.append(prop, JSON.stringify(user[prop]));
}
body: fd
关于javascript - 无法对 api 进行 POST,使用 fetch 时出现错误 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43554888/