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