簡體   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