首页 文章

fetch正在向后端发送错误的数据

提问于
浏览
1
handleSubmit = e => {
e.preventDefault();
var data = new FormData();
data.append( "name", this.state.first_name + ' ' +this.state.last_name);
data.append( "password", this.state.password);
data.append( "email", this.state.email);
data.append( "phone_no", this.state.phone_no);
console.log(data)
fetch("http://localhost:8080/register",{
  method: "POST",
  body: data,
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }

} .then(res => res.json()) . then((result)=> {if(result.status =='failure'){alert(result.data)console.log(result)} else { this.setState({isLoaded:true,});} // this.props.history.push('/ dashboard');},//注意:在这里处理错误//而不是catch()块很重要这样我们就不会吞下来自组件中实际错误的异常 . (错误)=> {this.setState({isLoaded:true,error});})}

预期的数据应该是这样的

{ name: 'mayank', email: 'demo@gmail.com', password: 'password' }

回归的是什么

{ '------WebKitFormBoundarynYkonogmAGuTwWsy\r\nContent-Disposition: form-data; name': '"name"\r\n\r\   nMayank nauriyal\r\n------WebKitFormBoundarynYkonogmAGuTwWsy\r\nContent-Disposition: form-data; name   ="password"\r\n\r\npassword\r\n------WebKitFormBoundarynYkonogmAGuTwWsy\r\nContent-Disposition: form   -data; name="email"\r\n\r\nma@gmail.com\r\n------WebKitFormBoundarynYkonogmAGuTwWsy\r\nContent-Dispo   sition: form-data; name="phone_no"\r\n\r\n\r\n------WebKitFormBoundarynYkonogmAGuTwWsy--\r\n' }

1 回答

  • 3

    发送 JSON 而不是 FormData

    var jsObject = {name: 'John', password: 'foo', email: 'foo@bar.com'};
    
    fetch(url, {
      method: 'POST',
      body: JSON.stringify(jsObject),
      headers:{
        'Content-Type': 'application/json'
      }
    }).then(res => res.json())
    .then(response => console.log('Success:', response))
    .catch(error => console.error('Error:', error));
    

相关问题