2017-05-11 9 views
0

クライアント側で角度2を使用し、サーバー側で角度を使用してアプリケーションを開発しています。 私はクライアントからサーバーにユーザー入力データを送信し、サーバーから適切な応答を得たいと考えています。 実行中の手順: 1.フォームに詳細を入力し、[送信]ボタンを押します。 2.サービススルー・スルー・サービスでは、検証のためにサーバーにデータを渡す必要がありますが、サーバー側では、 'loginDetailsDTO'の値がNULLになります。角2 +春:クライアント側からサーバー側でフェッチされたデータとしてNULLを取得する

サーバー側でデータを取得してください。

ありがとうございました。

以下

サンプルコードである:

user.component.ts

import { UserService } from './user.service'; 
import { UserLogin } from './userLogin'; 

login(value: UserLogin) { 
    this.UserService.login(value) 
     .subscribe(data => console.log(data)); 
} 

user.service.ts

import { UserLogin } from './userLogin'; 

login(loginDetails: UserLogin) { 
    return this.http 
     .get(this.loginUrl,JSON.stringify(loginDetails)) 
     .map(res => res.json()); 
} 

userLogin.ts

export class UserLogin { 
    userName: string; 
    password: string; 
} 

userController.java

@RequestMapping(value = "/login",method = RequestMethod.GET 
@ResponseBody 
    public ResponseEntity<LoginResponse> login(LoginDetailsDTO loginDetailsDTO){ 

     LoginResponse loginResponse = new LoginResponse(); 
     loginResponse.setResponseCode(LoginResponse.VALID_USER); 

     return new ResponseEntity<LoginResponse>(loginResponse, HttpStatus.OK); 
    } 

LoginDetailsDTO.java

public class LoginDetailsDTO { 

    private String userName; 
    private String password; 

    public String getUserName() { 
     return userName; 
    } 
    public void setUserName(String userName) { 
     this.userName = userName; 
    } 
    public String getPassword() { 
     return password; 
    } 
    public void setPassword(String password) { 
     this.password = password; 
    } 
} 

答えて

0

あなたはバックエンドにログインデータを送信するためにPOSTリクエストを使用する必要があります。ここで :

login(loginDetails: UserLogin) { 
     return this.http 
     .POST(this.loginUrl,JSON.stringify(loginDetails)) 
    .map(res => res.json()); 
} 

そしてバックエンドで次のようにコントローラーを書く:

@RequestMapping(value = urlPattern , method = RequestMethod.POST) 
    public @ResponseBody ResponseEntity login(@RequestBody LoginDetailsDTO) { 
     //magic 
    } 

はまた、私はそれがへのより良い実践であると信じて、/login POSTリクエストがデフォルトとしてスプリングによって処理されることに注意してくださいあなた自身のログインURLを定義してください。/authenticate

+0

ありがとうございます@ balag3。私はあなたの提案に従ってコードを変更しました。今私はエラーの下になっています: 'XMLHttpRequestはhttp:// localhost:8095/authenticateをロードできません。プリフライトの応答に無効なHTTPステータスコードがあり403 ' – saher

+0

春のセキュリティも使用していますか?そのため、春のセキュリティ設定チェーンで ログインURLを.loginprocessingUrl( '/ authenticate')として定義する必要があるためです。 – balag3

+0

いいえ私は春のセキュリティを使用していません。 – saher

関連する問題