跨域 iframe 内嵌页面 JavaScript 读写 cookie 失败解决方法

1,935 阅读1分钟
  • 问题描述:父页面通过iframe嵌入一个跨域的子页面,子页面的cookie设置不成功,也无法读取到,导致在请求拦截器时添加的请求头token信息为null,接口401(鉴权失败)。但是单独访问子页面是正常的。

  • 原因:浏览器的跨域访问限制

  • 解决方案:在需要嵌入的页面设置cookie的时候增加SameSite=none 和 Secure=true(2个是缺一不可的)

document.cookie = “foo=1;SameSite=none;Secure// js-cookie
import Cookies from 'js-cookie'
const TokenKey = 'vue_demo_token'
function setToken (token) {
  return Cookies.set(TokenKey, JSON.stringify(token),{SameSite:'None',Secure:true})
} 

参考文章:blog.csdn.net/jayccx/arti…