2016-12-05 7 views
0

ここで私の春のMVCコントローラにユーザー名とパスワードを送信したいと思います。 mvcメソッドを呼び出すためにajaxを使用しています。コントローラには到達していません。Ajaxコールでユーザー名とパスワードを送信する方法は?

角度コントローラ: -

$scope.formSubmit=function(){ 
     alert("submitted") 

     return $http({ 
      url :'loginSubmit' , 
      method : "POST", 
      data: { username: $scope.username, password: $scope.password } 
      //data: data 
     }).success(function(data, status, headers){ 

     }).error(function(data, status, headers) { 
      console.log("login error"+status);  
    }); 

    } 

MVCコントローラ

@RequestMapping(value="/loginSubmit",method=RequestMethod.POST) 
    public @ResponseBody User loadUserByUsername(@RequestParam("username") String username,@RequestParam("password") String password, HttpSession session){ 
     System.out.println("controller"); 
     System.out.println("name is "+username); 

     return null; 
    } 
+0

をお試しください –

+0

そして、リクエストされたURLをサーバー側に記録してください。常に身体に資格情報を送ります。 [コメントを読む](http://stackoverflow.com/q/38716703/4723795) – xenteros

答えて

3

あなたがリクエストパラメータを使用している場合は、URLに追加する必要があり

$scope.formSubmit=function(){ 
     alert("submitted") 

     return $http({ 
      url :'loginSubmit?username='+$scope.username+'&password='+$scope.password , 
      method : "POST", 
     }).success(function(data, status, headers){ 

     }).error(function(data, status, headers) { 
      console.log("login error"+status);  
    }); 

    } 

注:警告を使用しないでください。これは代わりに、リクエストURLの体に資格情報を送信することになる行うにはconsole.log

最善の方法を使用し

**体としてデータを送信する古いJSコードを保持し、Javaコードへの変更**

@RequestMapping(value="/loginSubmit",method=RequestMethod.POST) 
public @ResponseBody User loadUserByUsername(@RequestBody Map<String,Object> credentials, HttpSession session){ 
    String username = credentials.get("username"); 
    String password = credentials.get("password"); 
    System.out.println("controller"); 
    System.out.println("name is "+username); 
    return null; 
} 
+1

そして、リクエストされたURLをサーバー側に記録してください。常に身体に資格情報を送ります。 [いくつかの議論](http://stackoverflow.com/q/38716703/4723795) – xenteros

+0

@xenteros。そのコードを追加しました。 – madhairsilence

+0

あなたはSpring Securityを使用するときにそれが必要ではありません。次に、フォームをボディとして送信すると、Springはそれ自身を解決します。それは添付の投稿 – xenteros

-3
return $http({ 
      url :'/loginSubmit', 
      method : "POST", 
      data: { username: $scope.username, password: $scope.password } 
      //data: data 
     }).success(function(data, status, headers){ 

     }).error(function(data, status, headers) { 
      console.log("login error"+status);  
    }); 

    } 

@RequestMapping(value="/loginSubmit",method=RequestMethod.POST) 
    public @ResponseBody User loadUserByUsername(@RequestParam("username") String username,@RequestParam("password") String password, HttpSession session){ 
     System.out.println("controller"); 
     System.out.println("name is "+username); 

     return null; 
    } 
0

コンソールでネットワークをチェックして、どこリクエストが当たっている見ることができますか?この

$scope.formSubmit=function(){ 
     alert("submitted") 
     var uname = $scope.username,pswd=$scope.password; 
     return $http({ 
      url :'loginSubmit', 
      method : "POST", 
      params : {username:uname,password:pswd} 
     }).success(function(data, status, headers){ 

     }).error(function(data, status, headers) { 
      console.log("login error"+status);  
    }); 

    } 
関連する問題