Spring Controller возвращает представление или пустую строку в запрос ajax - PullRequest
0 голосов
/ 23 января 2020

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

Вот пример того, как должен выглядеть мой контроллер:

@PostMapping(value = "/path")
    public String serve(final Model model)
{
    if (everything_fine)
    {
        return "path_to_page_which_will_be_handled_by_view_controller";
    }

    return StringUtils.EMPTY;
}

и запрос ajax выглядит примерно так:

    $.ajax({
        type: 'POST',
        url: '/path',
            error: function (data) {
                //handle error
            },
            success: function (data) {
                 if (data) {
                     // render response in modal
                 } else {
                     // show some other stuff
                 }
            }
    });

Для ситуации, когда jsp возвращается запрос работает нормально, когда возвращается пустая строка, я получаю 404 и ajax запрос переходит на ветку ошибки, когда закончил. Я полагаю, это связано с тем, что контроллер представления не находит никакого представления для возвращенной пустой строки. Есть ли у вас какие-либо идеи, как мне выполнить sh мой сценарий?

Ответы [ 2 ]

1 голос
/ 23 января 2020

Вы пытаетесь вернуть пустой путь в браузер, и вы получаете 404. Это нормально. Попробуйте вернуть строку с путем к контроллеру, который возвращает пустую страницу:

@PostMapping(value = "/path")
public String serve(final Model model)
{
if (everything_fine)
{
    return "path_to_page_which_will_be_handled_by_view_controller";
}
return "path_to_EMPTY_page_which_will_be_handled_by_view_controller";
}
0 голосов
/ 23 января 2020

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

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