如果设置了“允许相同原点”,则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>