3

在 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.comhttps://www.yahoo.com但我希望它按照指定的方式重定向 URL,而不必提及协议。例如:如果直接进入地址栏,yahoo.com 与http://www.yahoo.com类似。

谢谢

4

1 回答 1

11

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

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

查看Spring Web MVC 框架redirect: prefix中的部分

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

于 2013-08-05T19:30:34.763 回答