axios не реализует почтовый запрос - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь опубликовать данные с помощью axios (NodeJS, ReactJS), но в итоге получаю эти ошибки enter image description here

enter image description here

и вот мой почтовый код

axios({
              method: 'post',
              url: '/api/signup',
              data: 
              {
               username: this.state.username,
               name: this.state.name,
               surname: this.state.surname,
               email: this.state.email,
               password: this.state.password,
               confirm_password: this.state.confirm_password,
              }
       })
       .then(res => res.data)
       .then(url => window.location.href = url.location)
       .catch(error => this.setState({errorBol: true, errorMessage: error}))

и мой код nodeJS

router.post('/', async (req,res)=>{
   const username = req.body.username;
   const name = req.body.name;
   const surname = req.body.surname;
   const email = req.body.email;
   const password = req.body.password;
   const confirm_password = req.body.confirm_password;

    console.log(username)
    console.log(name)
    console.log(surname)
    console.log(email)
    console.log(password)
    console.log(confirm_password)

   res.status(200).send({location: '/'})
})

У меня есть конфигурация для / api / signup, как это

 router.use('/api/main', require('./sinupfilename'))

так что проблема не в router.post ('/')

о проблеме:

Я выполняю отправку формы после запроса и у меня есть проверка формы, и она работает отлично, но это дает мнеошибки выше, когда я нажимаю кнопку отправки, поэтому, если кто-нибудь знает подсказку, я буду рад услышать это

1 Ответ

0 голосов
/ 02 марта 2019

Похоже на issue is not with axios but with your render function.Вышеуказанная проблема возникает, когда вы пытаетесь отобразить любой объект вместо действительного элемента реагирования.
Возможно, проблема связана с setState для переменной errorMessage.Попробуйте распечатать сообщение об ошибке или typeof сообщение об ошибке для получения дополнительной информации.Это не должно быть объектом.

Ошибка javascript object, если вы прочитали официальную документацию для axios.

Вам необходимо извлечь сообщение об ошибке и установить его в переменной errorMessage.Это должно работать нормально.В соответствии с документами, то же самое можно сделать следующим образом:

const err = ""
if (error.response) {
  err = error.response.data
} else if (error.request) {
  err = error.request.response
} else {
  err = error.message
}
this.setState({errorBol: true, errorMessage: err})

По сути, любая вещь, которая должна быть отображена, должна быть действительным элементом реагирования, например строка, теги html, числа, но не объект.Итак, вы должны убедиться, что все, что отображается, должно быть действительным элементом реагирования.Вы можете прочитать больше об этом здесь

Надеюсь, это поможет, вернемся к любым сомнениям.

...