В приложении 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>
Заранее спасибо! Я пробовал учебники / статьи все утро, но, похоже, ничто не резонировало с этой конкретной проблемой.