1
最近做项目,碰到很多情况使用cookie的情况,查了一些资料,明白一些cookie问题,并不是前端用js解决的,下次再碰到的话,可以直接甩锅给java了,不用自己在哼哧哼哧的在琢磨了。
  1. axios请求头携带cookie
    用axios请求数据的时候,只需要设置属性withCredentials为true即可,不需要进行其他操作。
    如果是服务端创建的cookie,在登陆的时候,服务端通过响应头的set-cookie字段会把创建的cookie给客户端携带过来。浏览器拿到cookie后会把cookie存在本地,后续的请求如果withCredentials为true,则会自动把cookie携带过去的。
  2. 不同的服务携带同一个cookie
    我们的项目页面C是用A服务做的登陆,但是在B服务上有其他业务,请求B服务的时候,需要把A服务的cookie携带过去,同时,A、B、C是同一个域名下面的二级域名。
    在我用document.domain的时候,一直没有获取到cookie,后来才注意到服务端给的set-cookie有httponly属性,所以没有办法通过javaScript获取到cookie。
    谁创建的cookie,就由谁去设置cookie的其他属性。给cookie设置domain属性,使页面C请求B服务的时候也要携带A服务的cookie。
    domain设置为.example.com(必须使用.作为开始),则以example.com结尾的域名都可以访问该cookie。

李红
23 声望4 粉丝

希望自己每年至少看两本书或者学会一个技能。