Angular — Как мне сохранить возврат строки из POST?

#angular #angular6

#angular #angular6

Вопрос:

Я пытаюсь сохранить строковое значение, возвращаемое из HTTP POST, но оно продолжает оставаться неопределенным.

Мой сервис:

 getString(id: string): Observable<any>{
    const params = {
        Id: id
    }
    return this.http.post(url , null, {params:params});
}
  

И POST вернет мне некоторую случайную строку

dsfsdfsdfsfsadfsdfsdafwrewrtwerctwertwertwertwetrxwet

И в моем компоненте:

 string1: any;
saveString() {
this.transactionService.getString(this.id).subscribe(data => 
{
        this.string1= data;
    })
}
  

Но мои string1 и data return не определены, служба HTTP успешно возвращает строковое значение. Как мне сохранить значение?

Комментарии:

1. getString(id: string): Observable<any>{ const params = { Id: id } возвращает this.http.post(url, null, {параметры:params}).map(соответственно => соответственно.json()); } string1: any; saveString() { this.TransactionService.getString(this.id ).subscribe(данные => { this.string1= data; }) }

Ответ №1:

Попробуйте установить эти данные в subscribe на любой

 string1: any;
saveString() {
    this.transactionService.getString(this.id).subscribe((data:any) => 
    {
        this.string1= data;
    })
}
  

Ответ №2:

Я думаю, вы ошибаетесь в своем коде. POST необходимо передавать данные во втором параметре, см. Документ в https://angular.io/guide/http,

 /** POST: add a new hero to the database */
addHero (hero: Hero): Observable<Hero> {
  return this.http.post<Hero>(this.heroesUrl, hero, httpOptions)
    .pipe(
      catchError(this.handleError('addHero', hero))
    );
}