Получение кодов состояния и сообщений с использованием jQuery / AJAX in Express - PullRequest
0 голосов
/ 14 апреля 2020

В приложении Express как я могу ПОСТАВИТЬ содержимое формы и получить ответ от сервера, используя jQuery AJAX (если по какой-то причине ввод был неверным)?

И так чтобы не загромождать сайт почти идентичным вопросом завтра: как можно запустить alert, используя ту же процедуру. Например, при успешном сбросе пароля, отправьте 200 статус и alert("Password successfully changed!");

на стороне клиента

www.example.com/signup

<!-- Using Foundation -->
<form class="modal-window-form" id="form-signup" method="post" data-abide>

  <!-- ... 
        Fields for email, username, password, confirm password 
        ...  -->

  <div class="cell small-10" id="signup-error"></div>  <!-- display error message here  -->
  <div class="grid-x cell small-12">
    <div class="cell small-12">
      <input type="submit" class="button large expanded" formaction="/signup" name="submit_signup" tabindex="7" value="Sign Up">
    </div>
  </div>
</form>

на стороне сервера

router.js

/*
  Using Passport.js
  Assume that if an error occurred during authentication method, it resulted in:

  return done(null, false, { 
      message: "specific error message"
  });

  and said error message can be accessed via req.message
*/
app.post('/signup', (req, res) => {
    passport.authenticate('user-signup-email', {
        successRedirect: '/dashboard',
        failureRedirect: () => {
            res.status(422);
            res.setHeader('Content-type', 'text/html');
            return res.send('<div class="alert callout">' + req.message + '</div>');
        }
    });
});

Поскольку я не нашел ответа после тщательного поиска (и это часто является ранним предупреждением о том, что он не рекомендуется), это даже целесообразно, не сталкиваясь с междисциплинарными проблемами или подобными? Конечно, я мог бы перерисовать страницу с сообщением об ошибке, но кажется неэффективным перерисовать и отправить всю страницу, чтобы отобразить <= 50 дополнительных символов. </p>

Заранее спасибо! Я пробовал учебники / статьи все утро, но, похоже, ничто не резонировало с этой конкретной проблемой.

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