【问题标题】:angular 2 - httpClient is returning empty headers角度 2 - httpClient 正在返回空标题
【发布时间】:2018-06-22 00:43:10
【问题描述】:

我正在使用 httpClient 执行 Web 服务,但我的问题是响应标头始终为空,我已经检查了 thisthis 并且无法使其工作,这是我的服务:

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);
      });

有人可以帮我解决这个问题吗?

提前致谢。

【问题讨论】:

    标签: angular


    【解决方案1】:

    搜索后发现问题出在服务(spring boot service)上,需要添加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 显示标题信息,我不明白它的行为,但现在可以工作了。

    【讨论】:

    • 我也遇到了类似的问题。我已经从服务器端设置了标头以允许和公开所有必需的标头。但是我仍然在客户端(Angular 6)中不断收到空标题。但是当我突然执行response.headers.get('Content-Type'); 时,我得到了所有标题!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 2018-12-05
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    相关资源
    最近更新 更多