Как остаться на той же странице после отправки почтового запроса с Express? - PullRequest
0 голосов
/ 05 июня 2018

Я знаю, что это может быть простой вопрос, но я просто не нашел решение, которое хочу.Я пишу пост маршрут с экспрессом.вот так:

app.post('/search', function(req, res){
// Some code to get data from req and save data to db
// Then want to stay current page.
});

Мой html:

<form action="/search" method="post">
     <input value="name" name="marker[name]">
     <input value="address" name="marker[address]">
     <input value="rating" name="marker[rating]">

     <button id="favo-button" type="submit">
         Submit
     </button>
 </form>

Когда пользователь нажимает кнопку отправки, данные отправляются через req на пост-маршрут, а там вставляются в дб.Тогда я хочу, чтобы страница никуда не направлялась, а оставалась текущей.Я попробовал несколько способов, но не справился с этим очень хорошо.то, что я пробовал:

  1. в маршруте, res.render('/search'); это приводит к повторному отображению страницы с тем же видом, но страница будет мигать из-за повторного отображения.

  2. ничего не делать с остатками на маршруте, тогда круг загрузки страницы никогда не остановится.

    app.post ('/ search', function (req, res) {var data = req.body.marker; // некоторый код вставляет данные в db //, а затем ничего не делает для изменения. Страница будетоставайтесь, но продолжайте загружаться.});

Есть ли способ просто ничего не делать с res и оставаться, при этом не сохраняя загрузку страницы?

1 Ответ

0 голосов
/ 05 июня 2018

Есть два способа сделать это.

  1. Вернуть 204 No Content ответ .(app.post('/search', (req, res) => res.status(204).send());)
  2. Сделайте запрос с помощью JavaScript (например, Ajax, например, с XMLHttpRequest ) вместо отправки формы

(Вы также можете отправитьформировать скрытый iframe, но это просто уродливый хак).

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