【问题标题】:Angular6 HttpClient : Inject Headers on Get request is not working on Chrome and IE11Angular6 HttpClient:在获取请求时注入标头在 Chrome 和 IE11 上不起作用
【发布时间】:2018-12-27 11:00:33
【问题描述】:

在我的 Angular 6 应用程序中,我正在尝试使用一些 GET 请求,同时注入一些 Headers

我的服务如下所示:

@Injectable()
export class MyService {
constructor(public httpClient: HttpClient) {
}
getUserInfos(cuid): Observable<any> {
    const headers = new HttpHeaders({'login': login});
    return this.httpClient.get(environment.urls.UserHabilitation, {headers});
}

在我的组件中:我正在订阅它,如下所示:

this.myService.getUserInfos(login).subscribe(infos => {
      console.log(infos );
      error => {
        console.log(error);
});

Firefox 下运行良好,在 Chrome 和 IE11 下不行;我得到了这样的错误:

TypeError:无法读取 null 的属性“长度” 在 HttpHeaders.push../node_modules/@angular/common/fesm5/http.js.HttpHeaders.applyUpdate (http.js:199) 在 http.js:170 在 Array.forEach () 在 HttpHeaders.push../node_modules/@angular/common/fesm5/http.js.HttpHeaders.init (http.js:170) 在 HttpHeaders.push../node_modules/@angular/common/fesm5/http.js.HttpHeaders.forEach (http.js:235) 在 Observable._subscribe (http.js:1445) 在 Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (Observable.js:42) 在 Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:28) 在 subscribeTo.js:21 在 subscribeToResult (subscribeToResult.js:6)

建议??

【问题讨论】:

标签: javascript angular typescript rxjs angular-cli-v6


【解决方案1】:

您的“}”似乎放错了位置。订阅可以得到2个参数,执行和错误响应:

this.myService.getUserInfos(login).subscribe(
      infos => {
        console.log(infos);
      },
      error => {
        console.log(error);
      }
);

或更短:

this.myService.getUserInfos(login).subscribe(
      infos => console.log(infos ),
      error => console.log(error)
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多