父页面的cookies可以让iframe的页面读取到吗?

a页面与b页面是同源的不涉及跨域,a页面iframe了b页面,a页面登录后有了cookies,这个时候b页面可以访问到a页面的cookies吗?请问怎样做可以让a页面的cookies传到b页面的cookies里面?

阅读 29.7k
3 个回答

不果不跨域, cookie是同步写的, 无论是iframe, 还是不同的window或者tab, 任何一个页面修改了cookie, 其它页面就可以通过document.cookie拿到, 但是没法监听cookie的改变. 需要注意两点: 一是如果指定了path, 则不同path的页面拿不到, 二是如果设置了httpOnly, 则js无法读取.

另外:

  • 如果要在iframe之间通信, 可以考虑使用postMessage.
  • 如果要跨页面监听数据变化, 可以考虑使用localStorage或者sessionStorage, 然后在window上监听storage事件.

你问能不能,那我只能说:能(不跨域)。
你要问为什么?自己看 cookies 原理。

cookie 是储存在用户本地终端上的数据。

用js来解释说呢,就是一个全局变量,你的a页面和b页面就是分别的两个函数。

var cookie = '';
function a(v){
    cookie = v;
}
function b(v){
    cookie = v;
}

这么说你应该可以更容易理解了吧

新手上路,请多包涵

同域下应该是可以的

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