【问题标题】:Angular9: Type 'Observable<HttpEvent<class>>' is not assignable to type 'Observable<class>'Angular9:类型“Observable<HttpEvent<class>>”不可分配给类型“Observable<class>”
【发布时间】:2020-06-25 00:12:11
【问题描述】:

在我的 Angular 应用程序中,我有一个进行 API 调用的服务文件。在我的功能之一如下。

 getSelectedPractitionerPermissions(id): Observable<classA> {
    const url =  apiUrl
    this.options = this.authService.getAuthInfo();
    return this.http.get<classA>(url, this.options);
  }

但我收到如下错误

类型“Observable”不可分配给类型“Observable”。 类型“HttpEvent”不可分配给类型“ClassA”。 “HttpSentEvent”类型与“ClassA”类型没有共同的属性。

我拥有从 getAutInfo 获得的所有必需的标头和令牌

  getAuthInfo() {
    const bearerToken = localStorage.getItem('token');
    let headers: HttpHeaders = new HttpHeaders();
    headers = headers.append('Authorization', 'Bearer ' + bearerToken);
    headers = headers.append('Cache-control', 'no-cache');
    headers = headers.append('Cache-control', 'no-store');
    headers = headers.append('Expires', 'Sat, 01 Jan 2000 00:00:00 GMT');
    headers = headers.append('Pragma', 'no-cache');
    return { headers };
  }

如果我删除 GET 路由中的 this.options,它可以正常工作。但我想拥有它们,因为我需要传递令牌和其他参数。

【问题讨论】:

  • 您是否遇到运行时错误或编译错误?
  • @Damith 编译时错误
  • 试试这个 return this.http.get(url, {headers: this.options })
  • @Damith 如果我尝试这样做,错误就消失了,但标头未在 API 调用中传递
  • 这是我用来获取标题的方式。 private getAuthInfo() { const bearerToken = localStorage.getItem('token'); const headers = new HttpHeaders(); headers.append('Authorization', 'Bearer ' + bearerToken); headers.append('Cache-control', 'no-cache'); headers.append('Cache-control', 'no-store'); headers.append('Expires', 'Sat, 01 Jan 2000 00:00:00 GMT'); headers.append('Pragma', 'no-cache'); return headers; }

标签: angular angular-cli angular9 angular-cli-v9


【解决方案1】:

getSelectedPractitionerPermissions

return this.http.get<classA>(url, {headers: this.options });

getAuthInfo 中:

return headers;

【讨论】:

  • 如果我这样做,标头不会在 API 调用中传递
  • 这是一个 StackBlitz 来证明这种行为:stackblitz.com/edit/angular-ivy-sch1gj。请试一试。标头在调用中传递。
猜你喜欢
  • 2019-01-12
  • 2018-04-19
  • 1970-01-01
  • 2021-09-23
  • 2023-04-10
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多