我正在使用Google UserService获取我的应用引擎Angular应用的登录和注销网址,并尝试将重定向路径作为查询参数传递。这是Angular URL的一个示例:
http://localhost:8080/#/dashboard
在Java中,我试图像这样创建Url:
String logoutUrl = UserServiceFactory.getUserService().createLogoutURL(redirectPath);
redirectPath是预期的查询参数字符串“#/ dashboard”。
问题是使用包含的'#'生成的URL不起作用。它只是通过一个新的URL重定向到自己。以下是从UserService生成的URL的示例:
/_ah/logout?continue=%23%2Fdashboard
如果我只是将字符串“/”传递给端点,那么我会得到一个这样的URL:
/_ah/logout?continue=%2F
这可以按预期工作,并在根文档中加载我的Angular应用程序。我真的希望能够让我的UserService URLS按预期工作。有什么想法吗?
这是从上面的网址重定向到的网址:
http://localhost:8080/_ah/logout?continue=%23%2Fdashboard#/dashboard
答案 0 :(得分:0)
我找到了问题的解决方案。如果我发送完整的URL而不仅仅是资源路径,UserService工作正常。我的Angular代码现在如下所示。该应用程序将获取登录URL,然后在登录时重定向到请求的URL。这实际上是在服务中,但我简化了StackOverflow的代码。
$http({
url: '/rest/user/login_uri?redirectPath=' + encodeURIComponent($location.absUrl()),
method: 'GET',
contentType: "application/json"
}).success(function (data) {
$window.location.href = data.uri;
}).catch(function (data) {
//Handle failed request....
});
我希望这可以帮助有人继续前进。