Angular 特定服务中的头出现问题

Angular 特定服务中的头出现问题,angular,Angular,在我的onInit()函数中的组件中,我有一个用于列出一些数据的调用。使用以下代码调用名为“Permission.service”的服务 ngOnInit() { this.listPermissions(); } listPermissions(): void { this.permissionService.getPermissions().subscribe( res=>{ this.permissionList=res;

在我的
onInit()
函数中的组件中,我有一个用于列出一些数据的调用。使用以下代码调用名为“Permission.service”的服务

  ngOnInit() {
    this.listPermissions();
  }

  listPermissions(): void {
    this.permissionService.getPermissions().subscribe(
      res=>{
        this.permissionList=res;
      }
    )
  }
但是,它给了我以下错误日志:

core.js:1673错误类型错误:无法读取的属性“length” 未定义 http.js:108 在Array.forEach()处 在HttpHeaders.lazyInit(http.js:102) 在HttpHeaders.push../node_modules/@angular/common/fesm5/http.js.HttpHeaders.init (http.js:166) 在HttpHeaders.push../node_modules/@angular/common/fesm5/http.js.HttpHeaders.forEach (http.js:235) 在可观察时订阅(http.js:1445) 在Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.\u尝试订阅 (见js:43) 在Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (见js:29) 在subscribeTo.js:21 在subscribeToResult(subscribeToResult.js:11)

使用chrome调试器,“x-access-token”头会带来一个未定义的值。但是,除了服务名之外,使用完全相同的代码调用不同的服务,效果很好

export class PermissionsService {
  constructor(private http: HttpClient, private loginService: LoginService, private globalService: GlobalsService) {}
  httpOptions = {
    headers: new HttpHeaders({
      "Content-Type": "application/json",
      "x-access-token": this.loginService.userInfo
    })
  };

  getPermissions(): Observable<any[]> {
    return this.http.get<any[]>(
      this.globalService.API_PATH + "readAllPermissions",
      this.httpOptions
    );
  }
...
导出类权限服务{
构造函数(私有http:HttpClient,私有loginService:loginService,私有globalService:globalService){}
httpOptions={
标题:新的HttpHeaders({
“内容类型”:“应用程序/json”,
“x-access-token”:this.loginService.userInfo
})
};
getPermissions():可观察{
返回this.http.get(
this.globalService.API_PATH+“readAllPermissions”,
这个是.httpOptions
);
}
...
下面是不起作用的服务:

export class RolePermissionService {

  constructor(private http: HttpClient, private loginService: LoginService, private globalService: GlobalsService) { }
  httpOptions = {
    headers: new HttpHeaders({
      "Content-Type": "application/json",
      "x-access-token": this.loginService.userInfo
    })
  };

  getPermissions(): Observable<any[]> {
    return this.http.get<any[]>(
      this.globalService.API_PATH + "readAllPermissions",
      this.httpOptions
    );
  }
导出类角色许可服务{
构造函数(私有http:HttpClient,私有loginService:loginService,私有globalService:globalService){}
httpOptions={
标题:新的HttpHeaders({
“内容类型”:“应用程序/json”,
“x-access-token”:this.loginService.userInfo
})
};
getPermissions():可观察{
返回this.http.get(
this.globalService.API_PATH+“readAllPermissions”,
这个是.httpOptions
);
}

在尝试访问组件之前,已在登录功能中设置userInfo变量。

问题已得到解决。我正在使用Navbar发送的httpOptions。但在登录之前,Navbar已初始化,并且未定义标题。在此服务中,我创建了一个函数来初始化httpOptions,每次我使用此方法,我将获得auth令牌。

您是否从这两个服务中的
@Angular/common/Http
导入Http内容?@JacopoSciampi是的,我是这样导入的:从“@Angular/common/Http”导入{HttpClient,HttpParams,HttpHeaders}”;