无法对 api 执行 POST,使用 fetch 时出现错误 400

Jen*_*Mok 4 javascript ajax fetch reactjs

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);
    })
Run Code Online (Sandbox Code Playgroud)

this.state.user 基本上是一个类似的对象{user: {name:"someone"},我的服务器端代码只是这样做

router.post('/signup', (req, res, next) => {
  console.log(req.body) // empty object
}
Run Code Online (Sandbox Code Playgroud)

我认为有问题fetch,没有看到网络选项卡中传递了任何数据。

gue*_*314 7

在设置 at或使用to键、值对之前传递给this.state.user。不期望对象。JSON.stringify()bodyFormDataPOSTbodyjavascript

body: JSON.stringify(this.state.user)
Run Code Online (Sandbox Code Playgroud)

let fd = new FormData();
let {user} = this.state.user;
for (let prop in user) {
  fd.append(prop, JSON.stringify(user[prop]));
}
Run Code Online (Sandbox Code Playgroud)

body: fd
Run Code Online (Sandbox Code Playgroud)