我正在使用httpClient执行Web服务,但是我的问题是响应头始终为空,我已经检查了this和this并且无法使其正常工作,这是我的服务:
iniciarSesion(usuario: Usuario) {
const idSistema = environment.idSistema;
const url = environment.url + environment.mssesiones;
return this.httpClient.post(
url,
{
usuario: usuario.usuario,
contrasena: usuario.contrasena,
idSistema: idSistema
},
{
headers: new HttpHeaders({
'Content-Type': 'application/json'
}),
observe : 'response'
});
}
这是执行服务的组件:
this.inicioSesionService.iniciarSesion(usuario).subscribe(
(httpResponse: HttpResponse<Object>) => {
console.log(httpResponse);
});
有人可以帮助我解决这个问题吗?,
谢谢。
答案 0 :(得分:1)
搜索后,我发现问题出在服务(弹簧启动服务)上,我需要像这样添加Access-Control-Expose-Headers
:
headers.add("authorization", jwtUtil.generateToken(usuario, peticion.getRemoteAddr()));
headers.add("Access-Control-Expose-Headers", "authorization");
我注意到httpResponse在执行之前一直返回空标题:
httpResponse.headers.get('authorization');
执行完之后,console.log显示标题信息,我不了解它的行为,但是现在可以正常工作了。