-1

在我的 Web API(asp 核心)中,当我发布要保存在 DB 中的对象时,它返回 CreatAtRoute,它是对象的 URL 或位置,例如:http://localhost:api/photo/45

它只是返回“res.headers undefined”

我正在使用此代码获取最近保存在 db 中的对象的 url

 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);
        })
      );
  }

它只返回“res.headers undefined”

API 运行良好,我在 Aspnetcore webapi 的启动类中使用 AllowAnyHeaders

我应该怎么办?

4

1 回答 1

0

默认情况下,角度httpclient返回响应正文。如果可以访问整个响应,则需要更改observe函数 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);
        })
      );
  }
于 2019-08-04T10:52:04.087 回答