[英]Redirect from Spring boot REST API to separated react frontend
我有两个应用程序:后端 - Spring Boot 2 REST API 和前端 - React
在后端应用程序中,我的一个控制器从另一个我无法控制的应用程序接收POST
请求。 从这个 controller 我想将客户端重定向到我的反应前端应用程序。 可能吗?
我的 controller 有这个方法可以处理重定向
@Controller
@RequestMapping(value="/api")
public class JumpController {
@PostMapping(value = "/{redirect}")
public String jump(@PathVariable("redirect") final String redirect) {
return "redirect:http://localhost:8443/category/" + redirect;
}
}
当我在 chrome 中以调试模式测试应用程序时,客户端正在向http://localhost:8443/category/gallery
发出 GET 请求。 由于GET
请求方法,我得到了404 (Not Found)
。
如何告诉客户端在不执行GET
操作的情况下访问http://localhost:8443/category/gallery
的实际页面?
不幸的是,我无法更改其他应用程序的行为。 我必须处理对我的应用程序的POST
请求。
HTTP 301 或 302 重定向指示客户端向指定位置发出 HTTP GET 请求。
这并不特定于 Java、Spring、React 或其他任何东西,这正是 HTTP 客户端在收到重定向响应时应该做的事情。
也许您想将客户端请求代理到http://localhost:8443/category/...
端点,在这种情况下,您可以设置代理服务器(如 nginx),将现有代理 servlet 添加到您的应用程序,或者您可以手动尝试自己代理请求。
显然,自己手动代理请求可能是最多的工作,因为它涉及读取请求(标头 + 正文),然后构造一个新请求到您的localhost:8443
服务,处理任何响应(和错误)返回客户端.
我建议您考虑使用代理服务器或 servlet。 快速的 Google 带来了HTTP-Proxy-Servlet的潜力
至少还有关于 SO 如何在 Spring MVC 中代理 HTTP 请求的先前示例?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.