如何从 Angular 8 的 Oninit 会话中获取价值?

How to Get value from session on Oninit in angular8?

我在登录期间将访问令牌存储在会话存储上,并在其他组件的 oninit() 方法上访问它,但得到的是空值。 在控制台上检查它在会话上存储令牌。

这里是在 post httpclient 请求

上设置会话存储
.subscribe(
    (data: any) => { // json data

      console.log('Success: ', data);
      sessionStorage.setItem("Token ",data.access_token)
        this._router.navigate( ['dashboard'] );

  }, 

我在这里访问其他组件上的这个令牌

ngOnInit() {
    let url:string = '.......';
     const token  = sessionStorage.getItem("Token");
     console.log(token);


    this.http.get(url,
    {
      headers : new HttpHeaders({
       'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization' :'Bearer '+ token
      })
    }
    ).subscribe(
      (data: any)=> { // json data

       console.log('Success: ', data.data);
      this.leads = data.data;


   },
   error => {
       console.log('Error: ', error);
   }
    )
  }

} 

检查使用 sessionStorage.setItem(令牌,JSON.stringify(data.access_token));

还有ans JSON.parse( sessionStorage.getItem( 代币 ));

您在注册令牌时有一个额外的space。

      sessionStorage.setItem("Token ",data.access_token)

删除令牌后多余的 space,它应该可以工作。

  sessionStorage.setItem("Token ",data.access_token)// Typo. You have a space here after 'Token'

  sessionStorage.setItem("Token",data.access_token); // Removed space

如果还是不行,那么你应该检查 Token 键设置是否在你试图检索它的 ngOnit 代码之前完成,