Ошибка 403 при пост-запросе, который отправляет пользовательский ввод - PullRequest
0 голосов
/ 29 июня 2019

У меня есть страница регистрации с адресом электронной почты и паролем.У меня также есть файл script.js на стороне пользователя, который определяет значение полей ввода и отправляет их с помощью запроса post.

Однако, когда я вхожу в оба поля и нажимаю sign up, терминал показывает POST /user/signup 403 и браузер просто продолжает загружаться до истечения времени ожидания.Кажется, что-то мешает коду получить доступ к маршруту, но я не знаю, что.

Я использую express-validator 6.0.1 с passport.js.

Помощь очень ценится.Спасибо.

script.js:

$('#signup-btn').click(function () {
$.ajax({
  url: '/user/signup',
  type: 'POST',
  cache: false,
  data: {
    email: $('#email').val(),
    password: $('#password').val()
  },
  success: function () {
    $('#error-group').css('display', 'none');
    alert('Successfully signed up');
  },
  error: function (data) {
    $('#error-group').css('display', 'block');
    var errors = JSON.parse(data.responseText);
    var errorsContainer = $('#errors');
    errorsContainer.innerHTML = '';
    var errorsList = '';

    for (var i = 0; i < errors.length; i++) {
      errorsList += '<li>' + errors[i].msg + '</li>';
    }
    errorsContainer.html(errorsList);
  }
});
});

маршруты:

router.post("/user/signup",
[
  check('email', 'Your email is not valid').not().isEmpty().isEmail().normalizeEmail(),
  check('password', 'Your password must be at least 5 characters').not().isEmpty().isLength({min: 5})
],
function (req, res) {
  const errors = validationResult(req);
  console.log(req.body);

  if (!errors.isEmpty()) {
    return res.status(422).jsonp(errors.array());
  } else {
    passport.authenticate("local.signup", {
      successRedirect: "/user/profile",
      failureRedirect: "/user/signup",
      failureFlash: true
    });
  }
});

router.get("/user/profile", (req, res, next) => {
  res.render("user/profile");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...