Как перенаправить на URL-адрес с контроллера микронавта? - PullRequest
1 голос
/ 24 мая 2019

У меня есть контроллер, который принимает некоторые параметры, обрабатывает его и должен вернуть параметр обратно в пользовательский интерфейс путем перенаправления на заданный URL-адрес.

Я попытался HttpResponse.seeOther и HttpResponse.redirect, чтобы отобразить страницу банка и сообщение "см. Другие", но не перенаправил на существующую обслуживаемую страницу. Что мне здесь не хватает?

@Post('/getServ')
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_HTML)
HttpResponse<String> serve(@Nullable @Body LinkedHashMap payload) {
    //...
    URI location = new URI(redirectURL)
        return HttpResponse.redirect(location).
            header("Location", redirectURL).
            status(302).
            header("JWT", jwt.toString())
    //...
}

Ожидаемым результатом должно быть перенаправление на URL с контроллера.

1 Ответ

1 голос
/ 24 мая 2019

Не пробовал, но это должно работать:

@Post('/getServ')
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
HttpResponse<String> serve(@Nullable @Body LinkedHashMap payload) {
    //...
    URI location = new URI(redirectURL)
        return HttpResponse.redirect(location).
            header("JWT", jwt.toString())
    //...
}

Ваша конечная точка не выдает text/html - перенаправление является пустым ответом только с набором заголовков Location (платформой). Однако возврат этого (Content-Type) заголовка может запутать ваш браузер.

Вам также не нужно дополнительно устанавливать код состояния и заголовок местоположения напрямую.

...