簡體   English   中英

Angular 2 + Spring:從客戶端在服務器端獲取NULL作為獲取的數據

[英]Angular 2 + Spring : Getting NULL as a fetched data at server side from client side

我正在開發在客戶端使用angular 2並在服務器端使用spring的應用程序。 我想將用戶輸入的數據從客戶端發送到服務器,並從服務器獲得適當的響應。 我正在執行的步驟:1.在表單中輸入詳細信息,然后按提交按鈕。 2.在通過提交服務提交數據時,應該將數據傳遞到服務器進行驗證,但是在服務器端,我的'loginDetailsDTO'值為空。

請幫助我在服務器端獲取數據。

提前致謝。

下面是示例代碼:

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;
    }
}

您應該使用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請求由spring處理,我認為最好定義自己的登錄網址,例如/authenticate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM