2016-11-17 146 views
0

我想用Set-Cookie头从我的服务器接收响应。我在服务器端使用Jersey,spring-boot和Spring security,在客户端使用angular 2。我收到响应,但Set-Cookie头未设置。它只在元数据中:Set-Cookie头未设置

{“statusType”:“OK”,“entity”:null,“entityType”:null,“metadata”:{“Set-Cookie”:[{“name” “SomeName”, “值”: “someId”, “版本”:1, “路径”:空, “域”:空, “评论”:空, “MAXAGE”: - 1, “安全”:假}] }, “状态”:200}

但没有 “设置Cookie” 标题: Header

这是从响应代码:

return Response.ok().cookie(new NewCookie("SomeName", "someId")).build(); 

方法“.header(..)”不起作用。

回答

2

尝试这样

public ResponseEntity<?> resourceFunction(HttpServletResponse response) { 
    response.addCookie(new Cookie("SomeName", "someId")); 
    return ResponseEntity.ok().build(); 
} 

Snippet from Chrome DevTool

ResponseEntityHttpServletResponseCookiejavax.servlet.http.*

2

另一种替代方法是进口:

public ResponseEntity<?> resourceFunction() { 
    HttpHeaders httpHeaders = new HttpHeaders(); 
    httpHeaders.add(HttpHeaders.SET_COOKIE, "SomeName=someId"); 
    return new ResponseEntity(httpHeaders, HttpStatus.OK); 
}