запрос работает с почтальоном, но не с топором ios .post - PullRequest
0 голосов
/ 06 января 2020

Я создал регистрационную форму в React- js с топором ios .post (). Запрос отлично работает через 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');
}
}

i ' жду ответа от вас.

Ответы [ 3 ]

0 голосов
/ 06 января 2020

Проверяйте свои пробелы, запятые, кавычки, особенно пробелы при установке заголовков, в то время как в Почтальоне вы пишете это в полях, но когда вы жестко программируете в редакторе кода, иногда вы ошиблись или поставили лишний пробел против, и это может вызвать ошибки

0 голосов
/ 12 января 2020

Я наконец нашел решение сам. тег 'form' перезагружает страницу после отправки запроса. Изменение формы на теги div решает мою проблему.

0 голосов
/ 06 января 2020

Так как вы не дали правильный журнал ошибок, поэтому не смогли получить точную проблему. Таким образом, предоставив вам один из моих рабочих кодов. Это может помочь. Этот фрагмент кода берет URL, а затем публикует данные. Здесь вы можете столкнуться с проблемой CORS. Если да, то в пакете. json напишите -

"proxy": "http://192.128.1.210: 8080 "

и установите http -middleware-прокси. Он будет отлично работать

 export function PostData(userData){
        var targetUrl ='/report'    /* /register in your case.*/
    return new Promise((resolve,reject)=>{
        fetch(targetUrl,{
            method: 'POST',
            headers: {
                        'Content-Type': "application/json; charset=utf-8",
                        "Accept":"application/json"
            },
            body: JSON.stringify({

                "requestData":{
                   "userName":userData.username,
                   "password":userData.password,
                   "clientId":"ptm",
                   "txnType":"GDR"

                }

            })

        })
        .then(response => response.json())
        .then((responseJson)=>{
            resolve(responseJson)
        })
        .catch((error)=>{
            reject(error)
        })
    })

С топором ios один, это один из примеров, которые вы можете попробовать

const user = {
      name: this.state.name
    };

    axios.post(`https://jsonplaceholder.typicode.com/users`, { user })
      .then(res => {
        console.log(res);
        console.log(res.data);
      })
  }
...