3

Spring Controller アクションでは、次のステートメントを使用して外部 URL にリダイレクトしています。

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

ただし、URL をローカルにリダイレクトしており、アドレス バーの URL 全体を www.yahoo.com に置き換えていないようです。

例: 上記のリダイレクトにより、私のアドレス バーは次のようになります。

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

これを解決するにはどうすればよいですか? ビューにリダイレクトしてから、ビューに URL をリダイレクトさせてみましたが、結果は同じでした。http://www.yahoo.comまたはhttps://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 などの論理ビュー名は、現在のサーブレット コンテキストに対して相対的にリダイレクトされますが、redirect: http://myhost.com/some/arbitrary/pathなどの名前は絶対 URL にリダイレクトされます。

于 2013-08-05T19:30:34.763 に答える