如果设置了“允许相同原点”,则amp iframe的原点不得等于容器

如果设置了“允许相同原点”,则amp iframe的原点不得等于容器,iframe,amp-html,Iframe,Amp Html,我得到了这个错误: Origin of <amp-iframe> must not be equal to container <amp-iframe sandbox=​"allow-scripts allow-same-origin" layout=​"nodisplay" frameborder=​"0" src=​"https:​/​/​localhost:​3000/​team-tracker-frame.html?team=reading" class=​"i-amp

我得到了这个错误:

Origin of <amp-iframe> must not be equal to container
<amp-iframe sandbox=​"allow-scripts allow-same-origin" layout=​"nodisplay" frameborder=​"0" src=​"https:​/​/​localhost:​3000/​team-tracker-frame.html?team=reading" class=​"i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined i-amphtml-error i-amphtml-layout">​…​</amp-iframe>​ 
if allow-same-origin is set. 
See https://github.com/ampproject/amphtml/blob/master/spec/amp-iframe-origin-policy.md for details.
的原点不能等于容器
​…​​ 
如果设置了“允许相同原点”。
看见https://github.com/ampproject/amphtml/blob/master/spec/amp-iframe-origin-policy.md 详情请参阅。
我的amp iframe看起来像这样(这是一个哈巴狗模板):


我的理解和直觉告诉我,通过提供
sandbox=“allow same origin”
应该可以成功加载此帧

后跟另一个错误:
uncaughttypeerror:无法读取amp-iframe.js抛出的null属性“contentWindow”

有人能解释一下吗。当然,“允许相同来源”意味着我应该能够在同一主机上拥有一个iframe,即localhost:3000


我还注意到,使用AMPWebpush可以设置iframe(helperiframeURL=”https://localhost:3000/amp-web推送帮助程序frame.html)将使用相同的沙箱设置加载到同一个源文件。

问题是,如果将
允许脚本
允许同一个源文件
组合在一起,则同一源文件上的iFrame可以访问父文档

同时设置允许脚本和允许相同来源关键字 当嵌入页面与包含 iframe允许嵌入页面简单地删除沙盒属性 然后重新装填,有效地冲出沙箱 总共


然而,AMP页面必须以某种方式构建,以便可以从不同的来源(例如cdn.ampproject.org)提供服务。如果
amp-iframe
允许设置
allow scripts
allow home origin
相同来源的iframe,则如果从不同来源提供amp文档,行为可能会中断。为了避免这种情况,当使用
允许相同来源

时,需要从不同的(子)域为iFrame提供服务,正如amp所建议的“可以通过重定向轻松绕过amp的非相同来源强制,因为只测试初始URL”

为了获得重定向,我使用从tinyURL站点生成的url。我为我的url创建了一个tinyURL,并将其放置在src或amp-iframe中,它正在工作

<amp-iframe 
  sandbox="allow-scripts allow-same-origin" 
  layout="nodisplay" frameborder="0" 
  src="https://localhost:3000/team-tracker-frame.html?team=reading">
</amp-iframe>