Skip to content

请求携带Cookie问题

场景

前端通过SSO单点登录进入页面,cookie 会存在本地,后续请求会自动带上。但是当前请求数据的时候,cookie 并没有带上。

解决方法

首先必须明确的是,一般来说,Cookie不需要我们自己额外的去带上去,只要他的domain相同,那么他就会默认带上

但是如果后面还是带不上,可以在request里面使用withCredentials这个属性

这边的两个域名需要保持一致,不然就不会带上。

补充

控制台cookie里面的domian含义

domian展示了他在哪个域名下,可以自动带上这个cookie,但是Cookie的携带不是必须一一对应的。

举一个例子,当前我的域名是www.example.com这个网址,那么我的domain就是www.example.com

那么我下次去请求example这个域名下的东西的时候,他是可以 自动带上的。

但是在请求a.example.com这个域名下的东西,是不可以自动带上的,如果你想要自动带上,你可以将 domain设置为.example.com

:::color5 如果未指定domain属性,默认情况下cookie的适用范围是当前访问的域名(不包括子域名)。要在子域名下共享cookie,需要显式地设置cookie的domain属性为主域名加一个点。

:::

参考资料

XMLHttpRequest:withCredentials 属性 - Web API 接口参考 | MDN

axios 中配置withCredentials_axios withcredentials-CSDN博客