Angular 2 - 从 Http 请求中获取 Headers

Angular 2 - Get Headers From Http Requests

我的所有后端 API 请求 return headers 中的新令牌信息,即使它们抛出异常。在下一个请求中,我需要发送这些新的令牌信息。

所以我想找出一种独特的标准方法来做到这一点,所以我正在尝试:

let requestOptions = new RequestOptions(Object.assign({
      method: method,
      url: environment.apiHost + url,
      body: body,
      headers: authenticatedRequest ? this.requestService.getAuthHeaders() : this.requestService.getJsonHeaders(),
      withCredentials: authenticatedRequest
    }));

this.http.request(new Request(requestOptions))
        .map((res:Response) => { this.storageService.setAuthInfo(res.headers); res.json() } )
        .catch((error:any) => Observable.throw(error.json().error || 'Server error'));

我面临的问题是,当我 subscribe 使用此方法时,res 变量 returning undefined.

你有什么建议?

问题是您必须 return 响应 res.json() 明确地从您的 map 函数中使用 {}

this.http.request(new Request(requestOptions))
   .map((res:Response) => { 
       this.storageService.setAuthInfo(res.headers); 
       return res.json();
   } )
   .catch((error:any) => Observable.throw(error.json().error || 'Server error'));

相似