2016-11-23 2 views
0

私のウェブサイトのログインページを設定しようとしていますが、現時点では、必要に応じて新しいページを読み込むように見えないので、sendRedirectメソッドが止まっています。 。response.sendRedirectがJavaとAngularJSの間で動作しない

マイログインページには、以下のコードが含まサーブレットへAngularJS $scopeを経由してユーザ名とパスワードの情報、渡し.jspファイルされ

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...");作品は、しかし、それはにリダイレクトされません。それが何であれ、URLは提供されます。私はreturn;行を追加するように言及した他のアドバイスを読んでおり、プロジェクトに固有の他のURL(例えばindex.jsp\index.jspなど)を試しましたが、これらの違いはありませんでした。

window.locationこれはもっと適切なアプローチですか?ここでどのようなコードを変更する必要がありますか?

+1

_doesn't work_を定義します。 AngularJSからのリクエストではなく、ページがリダイレクトされると思われるのはなぜですか?ブラウザのネットワークコンソールでレスポンスのステータスコードをチェックすると、それは何ですか? –

+0

私は、ブラウザがログインページから 'response.sendRedirect'メソッドで指定したもの(例:youtube.com、index.jspなど)にリダイレクトしないことを意味します。 – dat3450

+0

それはなぜですか? –

答えて

0

ウェブページが最終的に正しくリダイレ​​クトされるようにしました。誰か他の人が同じ問題を抱えた場合に備えて、私はこれを投稿しています。

以前のコメントで述べたように、応答はAngularJSにJavaサーブレットから送られるべきであるに、私は私の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!'); 
     }); 
    }; 
}; 
関連する問題