首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果设置了allow-same-origin,amp-iframe的原点不能等于容器

如果设置了allow-same-origin,amp-iframe的原点不能等于容器
EN

Stack Overflow用户
提问于 2018-06-06 22:57:59
回答 2查看 2.7K关注 0票数 1

我得到了这个错误:

代码语言:javascript
复制
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.

我的amp iframe看起来像这样(这是一个pug模板):

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

我的理解和直觉告诉我,通过提供sandbox="allow-same-origin",应该允许这个框架成功加载。

接着是另一个错误: amp-iframe.js抛出的Uncaught TypeError: Cannot read property 'contentWindow' of null

有没有人能对此有所了解。当然,"ALLOW- same -origin“意味着我应该能够在同一个主机上拥有一个iframe,即localhost:3000

我还注意到,使用amp-web-push允许您设置一个iframe (helper-iframe-url="https://localhost:3000/amp-web-push-helper-frame.html"),amp将愉快地加载到具有相同沙箱设置的同一源上。

EN

回答 2

Stack Overflow用户

发布于 2018-06-07 20:23:58

问题是,如果allow-scriptsallow-same-origin组合在一起,同一源上的iframe就可以访问父文档。

当嵌入页面与包含iframe的页面具有相同的来源时,

将allow-scripts和allow- same -origin关键字设置在一起,允许嵌入页面简单地删除沙箱属性,然后重新加载自身,从而有效地完全脱离沙箱。

https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-sandbox

然而,AMP页面必须以一种方式构建,以便它们可以从不同的来源(例如cdn.ampproject.org)提供服务。如果amp-iframe允许为同源iframes设置allow-scriptsallow-same-origin,那么如果一个AMP文档是从不同的源提供的,行为可能会中断。为了避免这种情况,在使用allow-same-origin时,iframes需要从不同的(子)域提供服务。

票数 1
EN

Stack Overflow用户

发布于 2020-05-19 00:45:08

正如amp建议的那样,“人们可以通过重定向很容易地绕过AMP的非同源强制执行,因为只测试了初始URL”。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50723525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档