Cookie 中的 path 问题。

2020-11-06 15:00:41 +08:00
 howells

我现在有个前后端分离的项目,我请求的 url 为 localhost:8080/api/xxx/xxx ,然后前端代理把它转成 localhost:9090/api/xxx/xxx,这个时候,我发现后端返回前端的 cookie 的 path 是 / ,而不是 /api/xxx,请求知道是什么原因吗

1286 次点击
所在节点    程序员
6 条回复
syozzz
2020-11-06 15:19:05 +08:00
cookiePath 后端是可以设置的啊, 你确定你的 /api 是应用的上下文,而不是后端设置的统一请求前缀?
syozzz
2020-11-06 15:21:50 +08:00
以 Springboot 为例。
1. /api 是后端开发加的统一前缀,不是上下文,那么 cookiePath 就是默认的上下文 /。
2. /api 是应用的上下文,但是后端开发自定义了 cookiePath,defaultCookieSerializer.setCookiePath("/"),那么 cookiePath 也为 /。
howells
2020-11-06 15:23:03 +08:00
@syozzz 我的 /api 只是个标识,说明这个请求需要 proxy,后端的请求 path 是带着 /api 的。对了,我描述的这个 cookie 是 JSESSIONID, 由 tomcat 去设置的
howells
2020-11-06 15:25:25 +08:00
@syozzz 后端没有自定义,虽然后端的 api 都带上了 /api,
syozzz
2020-11-06 15:27:52 +08:00
@howells 我的意思是你们后端没有设置上下文,应用的上下文就是 / 。而给你访问的 /api 是他统一写在 controller 的公共映射。所以 cookiePath 当然就是默认的上下文 / 。
howells
2020-11-06 15:32:59 +08:00
@syozzz 哦,明白你的意思了,非常感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/722410

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX