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

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

Smart猫小萌
浏览 5838回答 2
2回答

小怪兽爱吃肉

你问能不能,那我只能说:能(不跨域)。你要问为什么?自己看 cookies 原理。cookie 是储存在用户本地终端上的数据。用js来解释说呢,就是一个全局变量,你的a页面和b页面就是分别的两个函数。var cookie = '';function a(v){    cookie = v;}function b(v){    cookie = v;}这么说你应该可以更容易理解了吧

泛舟湖上清波郎朗

不果不跨域, cookie是同步写的, 无论是iframe, 还是不同的window或者tab, 任何一个页面修改了cookie, 其它页面就可以通过document.cookie拿到, 但是没法监听cookie的改变. 需要注意两点: 一是如果指定了path, 则不同path的页面拿不到, 二是如果设置了httpOnly, 则js无法读取.另外:如果要在iframe之间通信, 可以考虑使用postMessage.如果要跨页面监听数据变化, 可以考虑使用localStorage或者sessionStorage, 然后在window上监听storage事件.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript