【发布时间】:2018-01-31 02:42:33
【问题描述】:
我有以下休息端点,我想连同我的ResponseEntity 一起发送一个 cookie。但是成功发送响应后,cookie 就找不到了。
@RequestMapping(value = "myPath", method = RequestMethod.POST)
public ResponseEntity<?> createToken(HttpServletResponse response)
final String token = "a1b2c3d4e";
Cookie cookie = new Cookie("token", token);
response.addCookie(cookie);
// Return the token
return ResponseEntity.ok(new MyCustomResponse(token));
}
我的自定义响应
class MyCustomResponse {
private final String token;
public MyCustomResponse(String token) {
this.token = token;
}
}
我也尝试过手动创建ResponseEntity 并使用"Set-Cookie" 标头在标头中设置cookie,但同样的事情,没有cookie。
编辑:我已经确认Set-Cookie 标头实际上存在于响应中,但它实际上并未存储在浏览器中。我正在使用在 WebStorm 中运行的静态 Web 应用程序来访问在不同端口上运行的休息端点。这个 web 应用程序只是使用 JQuery 的 $ajax 方法来调用 REST 端点,没什么特别的。当我在 WebStorm 中运行网络应用程序时,我可以看到它在我的浏览器中创建的 cookie,从而确认我的浏览器允许存储 cookie。
【问题讨论】:
-
对我来说很好。请提供minimal reproducible example 并向我们展示您如何提出请求以及如何确定
Set-Cookie不在回复中。 -
@SotiriosDelimanolis 好的,所以我刚刚想出了如何在 Firefox 中查看完整响应,并且确实有
Set-Cookie标头。但是当我查看开发人员工具的存储选项卡时,没有 cookie。 -
在我发送请求后,它就在那里。
-
@SotiriosDelimanolis 也许我找错地方了。我在 intellij 中使用静态 Web 应用程序来访问在不同端口上运行的休息端点。我可以看到来自 intellij 的 cookie 集,但我的休息点的 cookie 不存在
-
抱歉,浏览器方面的事情我帮不上忙。
标签: spring-mvc cookies spring-restcontroller