如何从micronaut控制器重定向到网址?

时间:2019-05-24 18:36:06

标签: java groovy micronaut

我有一个接受一些参数处理的控制器,并且应该通过重定向到给定的URL将参数返回给UI。

我尝试过HttpResponse.seeOtherHttpResponse.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 个答案:

答案 0 :(得分:1)

尚未尝试过,但这应该可以工作:

@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标头可能会使您的浏览器感到困惑。

您也不需要直接设置状态代码和位置标头。