如何在 Spring 中重定向到另一台主机

Posted

技术标签:

【中文标题】如何在 Spring 中重定向到另一台主机【英文标题】:How to redirect on another host in Spring 【发布时间】:2020-06-09 15:24:15 【问题描述】:

我会感谢你的帮助:)

我在端口4200 上有一个前端,在8080 上有一个后端,经过身份验证后,我将其从8080 重定向到8080(另一个端点)以保存新用户,之后,我需要重定向到@ 987654324@

HttpHeaders responseHeaders = new HttpHeaders();
        responseHeaders.setLocation(Paths.get(url + "/home").toUri());
        return ResponseEntity.ok()
                .headers(responseHeaders)
                .body(cookie);

但我只收到回复There was an unexpected error (type=Internal Server Error, status=500). Illegal char <:> at index 4: http://localhost:4200/home

【问题讨论】:

【参考方案1】:

试试这个:

HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setLocation(URI.create(url + "/home"));
return ResponseEntity.status(HttpStatus.FOUND)
                .headers(responseHeaders)
                .body(cookie);

似乎错误发生在Paths.get。如果要创建 java.net.URI 对象,请改用 URI#create

我认为你在设置 HTTP 状态码时犯了一个错误。如果要进行重定向响应,则必须使用3xx 状态码而不是200(ResponseEntity#ok)。

相关问题

Spring MVC @RestController and redirectRedirect to dynamic URL in Spring MVC

【讨论】:

以上是关于如何在 Spring 中重定向到另一台主机的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React 中重定向到另一个视图

重定向到另一台服务器而不更改我当前的 Url

spring mvc 重定向路径和所有子节点到另一个域

如何在从 servlet 过滤器执行 HTTP 重定向时保留请求正文

如何在PHP中重定向到同一页面

text nginx位置规则将非现有图像重定向到另一台服务器