V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
howells
V2EX  ›  程序员

Cookie 中的 path 问题。

  •  
  •   howells · 2020-11-06 15:00:41 +08:00 · 1121 次点击
    这是一个创建于 1258 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 条回复    2020-11-06 15:32:59 +08:00
    syozzz
        1
    syozzz  
       2020-11-06 15:19:05 +08:00
    cookiePath 后端是可以设置的啊, 你确定你的 /api 是应用的上下文,而不是后端设置的统一请求前缀?
    syozzz
        2
    syozzz  
       2020-11-06 15:21:50 +08:00
    以 Springboot 为例。
    1. /api 是后端开发加的统一前缀,不是上下文,那么 cookiePath 就是默认的上下文 /。
    2. /api 是应用的上下文,但是后端开发自定义了 cookiePath,defaultCookieSerializer.setCookiePath("/"),那么 cookiePath 也为 /。
    howells
        3
    howells  
    OP
       2020-11-06 15:23:03 +08:00
    @syozzz 我的 /api 只是个标识,说明这个请求需要 proxy,后端的请求 path 是带着 /api 的。对了,我描述的这个 cookie 是 JSESSIONID, 由 tomcat 去设置的
    howells
        4
    howells  
    OP
       2020-11-06 15:25:25 +08:00
    @syozzz 后端没有自定义,虽然后端的 api 都带上了 /api,
    syozzz
        5
    syozzz  
       2020-11-06 15:27:52 +08:00
    @howells 我的意思是你们后端没有设置上下文,应用的上下文就是 / 。而给你访问的 /api 是他统一写在 controller 的公共映射。所以 cookiePath 当然就是默认的上下文 / 。
    howells
        6
    howells  
    OP
       2020-11-06 15:32:59 +08:00
    @syozzz 哦,明白你的意思了,非常感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5583 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:35 · PVG 14:35 · LAX 23:35 · JFK 02:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.