请求适用于Postman,但不适用于axios.post

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请求适用于Postman,但不适用于axios.post相关的知识,希望对你有一定的参考价值。

我使用axios.post()在React-js中创建了一个注册表单。该请求可以通过Postman完美运行,使后端无罪,但我的组件中没有任何反应。

使用Try / catch或finally()无效。我在控制台中没有任何错误。我所有的变量定义如下:

constructor(props) {
  super(props);

  this.state = {
   passwd: ''
 }
}

onFieldChange(fieldName) {
    return function (event) {
        this.setState({[fieldName]: event.target.value});
    }
}

render() {
 return ( 
   [...]
   <form onSubmit={() => this.handleSubmit()}>
    <input type="password" value={this.state.passwd} onChange={this.onFieldChange('passwd').bind(this)} placeholder="* Password" required />
    <button type="submit">Sign-up</button>
  </form>
  [...]

问题部分:(((如果/其他)正常运行,并且重定向到/ SignIn可以在其他地方使用)

handleSubmit(event) {
if (this.state.email === this.state.email02  && this.state.passwd === this.state.passwd02 && this.state.lastname !== '') {
  const data = {email: this.state.email, passwd: this.state.passwd, lastname: this.state.lastname, firstname: this.state.firstname}
  const config = { headers: {'Content-Type': 'application/x-www-form-urlencoded'}}

  axios.post('http://104.XX.YY.192:8081/register', data, config)
  .then(response => {this.props.history.push('/SignIn');})
  .catch(err => {console.log(err);})

} else if (this.state.email !== this.state.email02 ) {
    console.log('email are not the same');

} else if (this.state.passwd !== this.state.passwd02) {
    console.log('password are not the same');
}
}

我期待您的回音。

答案

请求的响应状态是什么?无法发表评论。

另一答案

由于您没有提供正确的错误日志,所以无法得到确切的问题。因此向您提供我的工作代码之一。这可能会有所帮助。此代码段将使用url然后发布数据。在这里您可能会遇到CORS问题。如果是,则在package.json中写-

以上是关于请求适用于Postman,但不适用于axios.post的主要内容,如果未能解决你的问题,请参考以下文章

POST 请求适用于 Postman,但不适用于 axios 或 .fetch()

请求适用于Postman,但不适用于axios.post

POST 请求适用于 Postman,但不适用于 axios.post()

Axios 发布请求适用于 Postman,但不适用于浏览器(它返回“错误 401-未授权”)

HTTP POST 请求适用于 Postman,但不适用于我的 Web 应用程序的 JavaScript 提取 [关闭]

Multipart POST 适用于 Postman,但不适用于 Angular Http Client