Angular 2 - 从Http请求获取头文件
问题描述:
我的所有后端API请求都会在头文件中返回新的令牌信息,即使它们会引发异常。在下一个请求中,我需要发送这些新的令牌信息。Angular 2 - 从Http请求获取头文件
所以我试图找出这样做的唯一标准的方式,所以我想:
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
变量正在返回undefined
。
你对我有什么建议?
答
问题是您必须明确从您的map
函数返回res.json()
,因为您使用的是{}
。
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'));
非常感谢! –
它解决了相关的问题,但我正面临一个新问题:发生错误时,它不会传递map(),因此它不会注册新的标记。解决方案将在catch()上设置新的标记('this.storageService.setAuthInfo(res.headers);'),除非有成功和错误返回时调用的请求方法。任何想法? –
@PaspRuby我会说它的价值开放的新问题,其他人也可以跳入思想.. –