response.sendRedirect在Java和AngularJS之间无法正常工作

时间:2016-11-23 02:13:48

标签: java angularjs servlets

我正在尝试为我的网站设置一个登录页面,但目前我仍然坚持使用sendRedirect方法,因为它似乎无法在需要时加载新页面。

我的登录页面是一个.jsp文件,它通过AngularJS $scope将用户名和密码信息传递给servlet,其中包含以下代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    System.out.println("Redirecting...");
    response.sendRedirect("https://www.youtube.com/");
    return;
}

System.out.println("Redirecting...");有效,但无论是什么,它都不会重定向到提供的网址。我已经阅读了其他提到的添加return;行的建议,我尝试了其他特定于我的项目的网址(例如index.jsp\index.jsp等),但这些都没有有所作为,但仍然无效。

window.location会更适合这种做法吗?我应该在这里修改什么代码?

1 个答案:

答案 0 :(得分:0)

所以我让网页最终正确地重定向,我发布这个以防其他人偶然发现同样的问题。

如前面的评论所述,响应应该从Java servlet发送到AngularJS,我已经在我的logincontroller.js文件中进行了如下重定向:

var app = angular.module('myApp', []);

function LoginController($scope, $http, $window)
{
    $scope.login = function()
    {
        $http({
            url: 'login',
            method: 'POST',
            data:
            {
                'username': $scope.username,
                'password': $scope.password
            }
            }).success(function(data, status, headers, config) {
                alert("SUCCESS! Data: " + data);
                $scope.details = data;
                $window.location.href = "home.jsp"; //This line redirects.
            }).error(function(data, status, headers, config) {
                alert('ERROR!');
        });
    };
};