-1

in my web API (asp core) when I post object to save in DB it return CreatAtRoute wich is the URL or location of the object like: http://localhost:api/photo/45

and it just return "res.headers undefined"

I am using this code to get url of object that recently saved in db

 addBankCard(bankCard: BankCard, id: string): Observable<BankCard> {
    return this.http.post(this.baseUrl + 'users/' + id + '/bankcards', bankCard)
      .pipe(
        flatMap((res) => {
          const loc = (res as Response).headers.get('Location');
          return this.http.get<BankCard>(loc);
        })
      );
  }

and it just returns "res.headers undefined"

the API work perfectly and I am using AllowAnyHeaders in startup class in Aspnetcore webapi

what should I do?

Rob
  • 14,746
  • 28
  • 47
  • 65
keyone
  • 39
  • 1
  • 8

1 Answers1

0

Angular httpclient return response body by default. If you can to access the entire response you need to change observe type in function params :

addBankCard(bankCard: BankCard, id: string): Observable<BankCard> {
    return this.http.post(this.baseUrl + 'users/' + id + '/bankcards', bankCard,  {observe: 'response'})
      .pipe(
        flatMap((res) => {
          const loc = res.headers.get('Location');
          return this.http.get<BankCard>(loc);
        })
      );
  }
Martin Choraine
  • 2,296
  • 3
  • 20
  • 37