重定向到 Spring MVC 中的外部 URL [重复]

Posted

技术标签:

【中文标题】重定向到 Spring MVC 中的外部 URL [重复]【英文标题】:Redirect to an external URL in Spring MVC [duplicate] 【发布时间】:2013-08-06 15:08:11 【问题描述】:

在 Spring Controller Action 中,我使用以下语句重定向到外部 URL:

String redirectUrl = "www.yahoo.com";
return "redirect:" + redirectUrl;

但是,它似乎是在本地重定向 url,而不是用 www.yahoo.com 替换整个地址栏 URL。

例如:通过上述重定向,我的地址栏现在看起来像:

http://localhost/myApp/auth/www.yahoo.com

我该如何解决这个问题?我什至尝试重定向到一个视图,然后让视图重定向 URL,但结果仍然相同。它似乎工作的唯一方法是如果我有http://www.yahoo.com 或https://www.yahoo.com 但我希望它按照指定的方式重定向 URL,而不必提及协议。例:yahoo.com 类似http://www.yahoo.com,直接进入地址栏即可。

谢谢

【问题讨论】:

【参考方案1】:

如果主机与当前主机不同,则需要该协议

String redirectUrl = "http://www.yahoo.com";
return "redirect:" + redirectUrl;

看看Spring Web MVC framework的redirect: prefix部分

诸如redirect:/myapp/some/resource 之类的逻辑视图名称将相对于当前Servlet 上下文进行重定向,而诸如redirect:http://myhost.com/some/arbitrary/path 之类的名称将重定向到绝对URL。

【讨论】:

以上是关于重定向到 Spring MVC 中的外部 URL [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring MVC 中重定向到动态 URL

在 Spring MVC 中重定向到动态 URL

IdentityServer 4,OpenIdConnect 重定向到外部登录 url

.net MVC 重定向与 JWT 令牌

Spring MVC 重定向在 url 中添加了一些参数

在spring MVC中重定向期间传递模型属性并避免在URL中相同