[英]Upload a file from client side to server side with ajax and spring portlet
[英]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.