Angular 8从HttpResponse获取“ Set-Cookie”标头

时间:2019-10-17 14:13:13

标签: java angular spring typescript cookies

我具有以下Java Spring REST API方法:

@RequestMapping(value = "/login", method = RequestMethod.POST)
public ResponseEntity login(@RequestBody LoginRequest request) {
    request.getSession(true);
    LoginResponse res = this.authService.login(request);
    return new ResponseEntity<>(res, HttpStatus.OK);
}

使用Postman或从FireFox浏览器调用时,我可以清楚地看到“ Set-Cookie”标题:

enter image description here

但是,当我使用console.log在Angular中打印响应时,我没有看到此标头:

enter image description here

这是Angular中的REST调用:

this.http.post<Login>(this.url, this.loginRequest, {
  headers: AuthService.getHeaders(),
  observe: 'response',
  withCredentials: true
}).subscribe(
  response => {
    console.log(response);
});

我确实按照建议将withCredentials: trueobserve: 'response'添加到请求调用中,并且确实获得了整个响应,但没有cookie。 我要做的是在成功登录后获取cookie,此cookie将随服务器中的身份验证请求一起发送。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果不是https,似乎浏览器不会将cookie共享给客户端。我必须遵循此guide才能以https模式提供服务,然后才能在服务器端看到cookie。