web-dev-qa-db-ja.com

POSTを複数のパラメーターを持つangular5で送信する方法は?

Angular5シンプルプロジェクト(フロントエンド)とバックエンド(スプリングブート)で作業しています。2つのパラメーターidPersonとidProjectを使用してAPIレストに投稿リクエストを送信したいので、APIレストは選択したプロジェクトに影響を与えることができます人、私はPOSTを使用してサービスでこれを実行しようとしましたが、それは不可能です。

これはProjectService.tsのコードです

    addProjToClient(idPerson:number,idProject:number){
    if(this.authService.getToken()==null) {
      this.authService.loadToken();
    }
    return this.http.post(this.Host+"/saveProjectToClient",idPerson,idProject,{headers:new HttpHeaders({'Authorization':this.authService.getToken()})});

  }

Http Postで3つ以上のパラメーターを送信することはできません。httpClientを使用します。

これを行う方法に関するアイデアはありますか?

4
dEs12ZER

http.postの2番目の引数は、投稿リクエストの本文です。本文に両方の値を入れて、サーバーの本文から取り出すだけです。

return this.http.post(this.Host+"/saveProjectToClient", {
  idPerson,
  idProject,
}, {
  headers:new HttpHeaders({
    'Authorization': this.authService.getToken()
  })
});

サーバー上(Springboot)

public class Dto {
    private String idPerson;
    private String idProject;
}


@Controller
@RequestMapping("/")
public class ExampleController {

   @PostMapping("/saveProjectToClient")
   public ResponseEntity postController(@RequestBody Dto dto) {
      System.out.print("Person Id was: ");
      System.out.println(dto.idPerson);
      System.out.print("Project Id was: ");
      System.out.println(dto.idProject);

      return ResponseEntity.ok(HttpStatus.OK);
    }
}
3
Teddy Sterne

Jsonオブジェクトにすべてのパラメーターを追加します。例:{ idPerson: 'personId', idProject: 'projectId'}を2番目のパラメータとして

2
Siddaram H