Как отправить POST-запрос без данных в Java Script - PullRequest
0 голосов
/ 08 мая 2020

Итак, я уже использую Ajax для отправки массива на маршрутизатор, как вы могли видеть здесь ...

 var send = function () {
            var data = search
            console.log(data)
            $.ajax({
                type: 'post',
                url: "/next",
                data: JSON.stringify(data),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    console.log('Success')
                },
                error: function (err) {
                    console.log(err)
                }
            })
        }
        send();

Если я console.log, это как

console.log(req.body)

Я получаю

[ 'Faye Dunaway', 'Kathy Bates' ]

и это нормально, мне это нужно. Тем не менее, в моем маршрутизаторе я также пытаюсь отобразить новую страницу с данными в ней следующим образом ....

router.post("/next", function (req, res) {
    Movies.find({name:{ $in: req.body}}, function(err, found){
        if(err){
            console.log(err)
        } else {
            res.render('movies',{
                movies:found
            })
        }
    })
})

Теперь мне сказали, что я не могу вызвать res.render с помощью ajax поэтому мне нужно было сделать кнопку внутри формы.

<form action="/next" method="post">
    <button  class="btn btn-outline-success btn-lg next">next</button>
 </form> 

Однако, если я теперь console.log req.body, я получаю

[ 'Faye Dunaway', 'Kathy Bates' ]
{}

Итак, я думаю о двух вещах: либо res.render должен вызываться с ajax или мне нужно избавиться от {}. Как вы понимаете, я новичок в этом. Спасибо за помощь. Запросите дополнительную информацию.

1 Ответ

0 голосов
/ 08 мая 2020

Насколько мне известно, данные, передаваемые при рендеринге, находятся не в теле, а используются в движке шаблонов. Таким образом, вы можете получить к нему доступ в блоке сценария вашего механизма шаблонов (PUG) следующим образом. вот так.

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