Угловой httpclient.post не создает правильное тело - PullRequest
0 голосов
/ 10 января 2019

У меня есть угловой сервис, который должен отправить некоторые данные с помощью почтового звонка.

Класс, который я должен отправить:

   export class Informazioni {
   partitaivacf:string;
   idpaese:string;
   }

Шаблон:

          <label for="idpaese">ID</label>
          <input #idpaese type="text" placeholder="ID Paese" [(ngModel)]="informazioni.idpaese">

          <label for="partitaivacf">Partita iva o codice fiscale</label>
          <input #partitaivacf type="text" placeholder="PIVA" [(ngModel)]="informazioni.partitaivacf">

Компонент:

      export class ImpostazioniFattureComponent implements OnInit {

      informazioni:Informazioni;



      constructor(private informazioniservice:InformazioniService) {
      this.informazioniservice.prendiinformazioni().subscribe(result => {
      if(result != undefined) {
      this.informazioni = result;
      }
      });
      }

      ngOnInit() {}


       salva(){
      this.informazioniservice.salvainformazioni(this.informazioni);
      }

И услуга:

     export class InformazioniService {

     endpoint = 'http://localhost:8080/';

     constructor(private http: HttpClient) { }

     salvainformazioni(info:Informazioni){

     var post = this.http.post(this.endpoint + 'salvainformazioni', info);
     console.log(post);
     post.subscribe( result => {
     });
     }

     prendiinformazioni(): Observable<Informazioni>{
     return this.http.get<Informazioni>(this.endpoint + 'prendiinformazioni');
     }

}

Для других объектов тело запроса похоже на

  ClassName 
  {
   "attr1":"val1",
   ...
   "attrN":"valN"
  }

В этом случае, если я распечатываю объект post на консоли, это всего лишь

  {  
   "idpaese":"id",
   "partitaivacf":"piva"
  }

Очевидно, что когда я открываю страницу шаблона, выдается ошибка, что шаблон не может прочитать свойства неопределенного объекта informazioni. Может ли быть проблема созданного тела, связанная с этим? Или может быть другая проблема, которую я игнорирую?

Заранее спасибо

1 Ответ

0 голосов
/ 10 января 2019

Похоже, ваша проблема не имеет ничего общего с httpClient.

Из вашего объяснения видно, что вы ожидаете, что тело сообщения будет включать объект "ClassName", но на самом деле вы публикуете объект "Informazioni", и единственные члены этого объекта, как показывает ваше определение, "idpaese" и "partitaivacf".

Я предполагаю, что вы просто немного озадачены данными, которые вы на самом деле определили, и данными, которые вы ожидаете.

Пример стекаблика, показывающий ваш код вместе с подробным описанием того, как вы ожидаете, что он будет работать, и того, как он на самом деле работает, помог бы людям направить вас к более конкретному решению.

...