【问题标题】:Cookie not set in iFrameCookie 未在 iFrame 中设置
【发布时间】:2020-12-31 19:19:57
【问题描述】:

场景:

我的父站点 A 域 A 嵌入了带有域 B 的 iframe...请注意,我可以控制这两个站点。我从站点 A 调用 postMessage,该站点发布了一些信息,这些信息将作为 cookie 存储在 iframe 域 B 中。iFrame 将侦听 postMessage 事件并相应地设置 cookie。

域 A:

 var frame = document.getElementById('exampleFrame');
 frame.contentWindow.postMessage({"age":28}, '*');

嵌入式 iframe 域 B:

window.addEventListener('message', messageReceivedEvent, false);

function messageReceivedEvent(e) {
   document.cookie("age=" + e.data.age + ";");
   console.log(document.cookie);
}

console.log(document.cookie) 不返回任何内容

这里的问题是,一旦我在 messageReceivedEvent 中设置了 cookie,cookie 似乎没有存储在域 B 中。我错过了什么吗?

注意:此问题仅在最新的 Google Chrome 版本中出现,Firefox 可以正常工作。

【问题讨论】:

    标签: javascript google-chrome cookies iframe


    【解决方案1】:

    Chrome 处理 cookie 的方式不同。 请参阅 Mozilla Document.cookie 示例 #1:

    • 它在 Firefox 中完美运行
    • 在 Chrome 中不起作用

    看到这个SO thread about chrome cookies

    此外,其他人在使用 iFrames 时在此处报告了这个 Chrome“错误”:

    不确定如何解决,但可以改用localStorage

    【讨论】:

      猜你喜欢
      • 2018-12-11
      • 2011-11-01
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 2013-10-15
      • 2014-05-16
      • 2012-09-27
      • 2021-11-03
      相关资源
      最近更新 更多