繁体   English   中英

从 Spring 引导 REST API 重定向到分离的反应前端

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM