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

标签 javascript ajax reactjs fetch

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/

相关文章:

javascript - Jquery resize() api 混淆

javascript - 在莲花脚本中执行 22 位数字的除法

javascript - 未定义索引 : id in AJAX, 代码点火器

javascript - 在第一个文本框中输入时,在第二个文本框中获取 mysql 数据

javascript - 将 Lodash 去抖动与 React useCallback 一起用于输入 onChange 事件

reactjs - React > 如何在使用 react-table 添加新行后将焦点设置在输入字段上

javascript - 防止action属性使用javascript运行php脚本

javascript - JavaScript 函数中的 var 作用域

javascript - 涉及 AJAX 的函数不返回值 - jQuery

javascript - react -添加省略号字符不起作用