Angular 2 http.get 没有在 header 中发送 token

标签 angular angular2-services angular2-http

我有一个 post 方法可以正常工作并从服务器获取我的 token

authenticate() {
  let url = this.server + 'authenticate';
  let headers = new Headers({ 'Content-Type': 'application/json' });
  let options = new RequestOptions({ headers: headers });

  let body = JSON.stringify({
    'password': 'admin',
    'rememberMe': true,
    'username': 'admin'
  });
  return this._http.post(url, body, options)
    .map((res: Response) => res.json())
    .subscribe(result => this.token = result.id_token);
}

其中 this.server 是一个包含服务器 url 的字符串。并且 this._http 只是 angular Http 的一个实例

private _http: Http;
constructor(http: Http) {
  this._http = http;
}

并且this.token只是一个空字符串private token: string;

现在一切正常,我从服务器获得了正确的 token 。 我的问题是,当我尝试在 get 方法中使用此 token 时,它不起作用并且我收到 401(未经授权)错误。

我的 buggy 获取方法是:

getData(src) {
  let url = this.server + src;
  let headers = new Headers({'Authorization': 'Bearer ' + this.token});
  return this._http.get(url, headers)
  .map((res: Response) => res.json())
  .subscribe(res => console.log('res'));
}

最佳答案

所以问题是我应该在发送 header 时在 header 周围添加 {}。 get 应该是 this._http.get(url, { headers })

关于Angular 2 http.get 没有在 header 中发送 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38272497/

相关文章:

angular - 引用this在Angular2/Typescript中传递回调

angular - 使用同一服务的多个实例

Angular 2 : Nested subscribe with second subscribe inside the loop

javascript - 如何以 Angular 固定 radio 组

css - 工具栏下的全高 sidenav(跨设备)

javascript - 将对象存储在 firebase 中以便稍后以简单的方式重新排序的正确方法是什么?

javascript - 使 div 及其所有子项忽略父类样式

javascript - Angular 2 中的服务应该包含数据操作逻辑还是组件?

unit-testing - 如何模拟服务?

angular 2 - 在 http 错误处理程序中注入(inject)服务