在Spring Controller Action中,我使用以下语句重定向到外部URL:
String redirectUrl = "www.yahoo.com";
return "redirect:" + redirectUrl;
但是,它似乎是在本地重定向网址而不是用www.yahoo.com替换整个地址栏网址。
Ex:通过上面的重定向,我的地址栏现在看起来像:
http://localhost/myApp/auth/www.yahoo.com
我该如何解决这个问题?我甚至尝试重定向到视图,然后让视图重定向URL,但结果仍然相同。它似乎工作的唯一方法是,如果我有http://www.yahoo.com或https://www.yahoo.com但我希望它按照指定重定向URL,而不一定提到协议。例如:如果直接进入地址栏,yahoo.com与http://www.yahoo.com类似。
由于
答案 0 :(得分:9)
如果主机与当前主机的主机不同,则需要协议
String redirectUrl = "http://www.yahoo.com";
return "redirect:" + redirectUrl;
中的redirect: prefix
部分
逻辑视图名称,例如redirect:/ myapp / some / resource将相对于当前的Servlet上下文重定向,而重定向:http://myhost.com/some/arbitrary/path等名称将重定向到绝对URL。