如何从 POST 请求响应中获取响应头

K4mczi

如上。以下代码不起作用。

    public login() {
  const username = "kamczi";
  const password = "password";
    return this.http.post<any>(environment.api_endpoint+'/login', { username, password} , {observe: 'response'}).subscribe(resp=>{
        this.handleAuthentication(resp.headers.get('Authorization'))
    })
  }
  public handleAuthentication(token: string): void {
    localStorage.setItem('access_token', token);
    console.log(token);
  }

Console.log 显示为空

我需要获取位于响应标头中的授权标头。

在此处输入图片说明

解决

我需要将以下代码添加到我的 Spring Boot 安全配置中。

CorsConfiguration configuration = new CorsConfiguration();
configuration.applyPermitDefaultValues();
configuration.addExposedHeader("Authorization"); // this line helped
阿西姆哈什米

您的 Angular 代码运行良好。某些标头旨在仅被浏览器拦截,用户无法在代码中访问它们。为此,您必须在响应中明确公开它们。

因此,当您从 API 发送响应时,您需要将以下标头添加到响应中,并且Authorization标头将可用。

'access-control-expose-headers' : 'Authorization'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章