1.今天在上线过程中,发现所有的请求都不发送cookie,导致登录失效
原因排查
1.cookie写入的域名和请求的接口域名不一致,导致浏览器判定位跨域,所以不传递cookie
解决办法,
设置 axios 的 withCredentials 属性
var service=axios.create({
baseURL:baseUrl,
withCredentials: true, // send cookies when cross-domain requests
timeout:50000,
})
或者
axios.defaults.withCredentials = true
一般到这里问题都能解决了,但是自己的项目中还是没看到cookie
这时候就要想到,有没有被拦截的情况
排查代码后,我发现,引用了mock.js在生产环境
mock.js如果没有配置需要拦截的接口地址,会默认全部拦截转发,造成cookie不能传递的结果