我有基于Spring Boot 2.0 thyemeleaf / spring react的Web应用程序。我在控制器中有以下代码:
Mono.just("redirect:/error/404");
如果不良用户输入了无效的查询字符串参数,则会运行哪个。重定向工作正常,但URL更改为:
/error/404
而不是保留原始用户输入的网址
/home?gp=badvalue
如何在将原始URL保留在浏览器地址栏中的同时进行重定向?
请注意,此Web应用程序将在嵌入式Servlet容器(在本例中为Netty)中运行。
答案 0 :(得分:1)
使用重定向redirect:/error/404
,服务器将在Location标头中以302和新URL进行响应;然后浏览器/客户端将再次请求新的URL。
尝试使用转发:
return new ModelAndView("forward:/redirectedUrl", model);
转发完全在服务器端进行; Servlet容器将相同的请求转发到目标URL;该网址不会更改 浏览器
在here中的引用