Избегайте перенаправления в почтовом запросе - PullRequest
0 голосов
/ 04 мая 2020

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

Я хочу избежать перенаправления в этом запросе POST, но это автоматически переходит на URL search_results / и печатает json. Как я могу избежать этого?

Тем не менее, он выводит на консоль «Успешное перенаправление сообщения» перед перенаправлением.

        $(document).ready(function () {
            $.extend(
            {
                redirectPost: function(location, args)
                {
                    var form = $('<form></form>');
                    form.attr("method", "post");
                    form.attr("action", location);

                    $.each( args, function( key, value ) {
                        var field = $('<input></input>');

                        field.attr("type", "hidden");
                        field.attr("name", key);
                        field.attr("value", value);

                        form.append(field);
                    });
                    $(form).appendTo('body').submit();
                }
            });

            $("#submitButton").click(function() {
                console.log("submitButton clicked")

                $("#search_form").submit(function(e) {
                    e.preventDefault();

                    $.redirectPost("./search_results/", {

                            inheritance: $("input[name=inheritance]:checked").attr("id"),
                            penetrance: $("input[name=penetrance]:checked").attr("id"),
                            mortality: $("input[name=mortality]:checked").attr("id"),

                            success: function(response){
                                console.log("Success in redirect post!")

                                var json_results_list = response.body.results_list

                            }


                    });

                });
            });
        });

Мой внутренний код выглядит примерно так:

app.post('/search_results', callName)


function callName(request, response) {
//...insert serverside code..
//...set global_data to a JSON in string form
response.send(JSON.parse(global_data))
}

1 Ответ

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

Так что в основном то, что вы хотите, называется ajax. Вам не нужно создавать метод redirectPost, который сделает невидимую форму и отправит ее. Просто используйте $.post вместо.

$.post("./search_results/", {
    inheritance: $("input[name=inheritance]:checked").attr("id"),
    penetrance: $("input[name=penetrance]:checked").attr("id"),
    mortality: $("input[name=mortality]:checked").attr("id")
}, function (response) {
    console.log("Success in redirect post!")
    var json_results_list = response.body.results_list

});

Вы можете проверить больше примеров здесь

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