页面域名为abc.cn,嵌入iframe域名为qwe.com。
嵌入的iframe如何读写自己域名(.qwe.com)下的cookie呢?
使用document.cookie 嵌入时打印出来是空的,不嵌入时读取正常。
页面域名为abc.cn,嵌入iframe域名为qwe.com。
嵌入的iframe如何读写自己域名(.qwe.com)下的cookie呢?
使用document.cookie 嵌入时打印出来是空的,不嵌入时读取正常。
前面已经有人说了,就不在重复了。这里说一个另外的思路。就是iframe里面直接嵌套其他站点的时候(不是自己能控制的情况)。如何获取其他站点的cookie。
第一种。通过chrome扩展的webrequest的onHeadersReceived这个hook来拿到对应的cookie。如果是作为前端的话,这个应该是比较适合的。
第二种。通过代理的形式。这个得后端支持。
设置一下document.domain: 如果两个域名属于同一个主域名的话,你可以在主页面和iframe里都设置document.domain成相同的主域名。这样,两个页面就属于同一个源,可以相互访问Cookie。或者用用postMessage
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.7k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
3 回答10.3k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.8k 阅读
老生常谈的现代浏览器对第三方 Cookie 的处理了。
第一你需要升级成 HTTPS,无论父站点还是被嵌入的站点;第二你需要写入 Cookie 时增加
Secure; SameSite=None;
标记,无论是你 JS 写入还是服务端 Set-Cookie 返回都是如此。