请求头中cookie加不上;接口跨域;

我在B.html页面登录后,在浏览器F12拿到cookie,然后复制粘贴在A.html页面执行document.cookie,然后我在A.html页面使用axios请求B.html页面的接口,但是request header里面并没有cookie,我在前端代码中设置了axios.defaults.withCredentials = true;但没有效果,不知道哪里的问题,我知道是跨域问题,但是试了很多方法,cookie还是加不上,求解。

阅读 5.3k
5 个回答
  1. 首先,确定 a.html 已经有 cookie 了。可以通过 devtools 查看。
  2. 如果跨域,需确保 b.html 响应了 cors 头 Access-Control-Allow-Credentials,同时 Access-Control-Allow-Origin 指定为 a.html 的域名。

参考:MDN

浏览器默认会携带cookie的,A和B是同一个项目的吗?

1、A、B页面的域名是不是不一样,给B设置cookie时,注意domain得设置成B的,不然不会带上
2、检查一下path的值是不是也设置了,默认为/,如果设置的值跟B的不一样,请求也不会带上
3、检查一下设置的expires值,如果过期了,cookie也不会带上

document.cookie = `${name}=${value};domain=${domain};path=${path};expires=${expires}`

使用nginx吧2个页面代理成同源的就好了,这样就不会跨域了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题