nodejs 400 неверный запрос.при отправке данных формы через XMLHttpRequest (). send - PullRequest
0 голосов
/ 05 июня 2018

У меня проблемы с отправкой данных формы на мой локальный сервер NodeJS Express.Я считаю, что это как-то связано с тем, как я форматирую свой запрос.Я пытаюсь зарегистрировать новую учетную запись пользователя в базе данных Postgresql, используя Passport в качестве промежуточного программного обеспечения, хотя я не верю, что код когда-либо делает это так далеко.

Вкладка Chrome DevTools Network дает мне дополнительную информацию о неверном запросе {"status": "Невозможно прочитать свойство 'длина' из неопределенного"}

Когда пользователь нажимает кнопку "Создать учетную запись", этот код срабатывает:

processForm(event) {
// prevent default action. in this case, action is the form submission event
event.preventDefault();

// create a string for an HTTP body message
const name = encodeURIComponent(this.state.user.name);
const email = encodeURIComponent(this.state.user.email);
const password = encodeURIComponent(this.state.user.password);
const formData = `name=${name}&email=${email}&password=${password}`;

// create an AJAX request
const xhr = new XMLHttpRequest();
xhr.open('post', '/auth/register');
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.responseType = 'json';
xhr.addEventListener('load', () => {
  if (xhr.status === 200) {
    // success

    // change the component-container state
    this.setState({
      errors: {}
    });

    // set a message
    localStorage.setItem('successMessage', xhr.response.message);
    this.setState({redirect: true});

  } else {
    // failure

    const errors = xhr.response.errors ? xhr.response.errors : {};
    errors.summary = xhr.response.message;

    this.setState({
      errors
    });
  }
});
xhr.send(formData);
}

Chrome DevTools мигает 'xhr.send (formData) 'как первая ошибка в стеке.

Это код экспресс-обработчика, но я не думаю, что он когда-либо будет так далеко:

router.post('/register', authHelpers.loginRedirect, (req, res, next)  
=> {
return authHelpers.createUser(req, res)
.then((response) => {
    passport.authenticate('local', (err, user, info) => {
      if (user) { handleResponse(res, 200, 'success'); }
    })(req, res, next);
})
.catch((err) => { handleResponse(res, 500, 'error'); });
});

Любая помощь будет принята с благодарностью.Я часами пытался ее устранить.Это похоже на каждое сообщение в стеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...