Как отправить POST в angular5 с несколькими параметрами? - PullRequest
0 голосов
/ 14 мая 2018

Я работаю в простом проекте angular5 (front end) и back end (spring boot), я хочу отправить запрос post на остальные API с двумя параметрами idPerson и idProject, чтобы остальные 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()})});

  }

Невозможно отправить более 2 параметров в HTTP Post, я использую httpClient.

Есть идеи, как это сделать?

Ответы [ 3 ]

0 голосов
/ 14 мая 2018

Попробуйте что-то вроде этого:

generisiIOS(idtipkomitenta: number, idtipios: number, datumpreseka: Date, idkorisnika: number) {
        let bodyString = JSON.stringify({ idtipkomitenta, idtipios, datumpreseka, idkorisnika });
        let headers = new HttpHeaders({ 'Content-Type': 'application/JSON' });
        return this._http.post<number>('faktura/generisiios', bodyString, { headers });
    }
0 голосов
/ 14 мая 2018

Второй аргумент http.post - это тело запроса post. Просто поместите оба значения в тело, а затем извлеките их из тела на сервере.

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);
    }
}
0 голосов
/ 14 мая 2018

Добавить все параметры в объект json, например: { idPerson: 'personId', idProject: 'projectId'} как второй параметр

...