阻止脚本执行,因为文档的框架是沙箱 - Angular应用程序

时间:2014-07-02 12:27:21

标签: javascript angularjs iframe sandbox

我有一个奇怪的问题 - 当将app(带有rest api的纯角度应用程序)部署到生产服务器并通过其他站点的链接访问其URL时(例如,参考电子邮件)我有空白页面 - firefox什么都不说,chrome说

  

在“网站的网址”中阻止脚本执行,因为该文档是   框架是沙箱,并且未设置'allow-scripts'权限。

并阻止我的所有.js文件...

这意味着什么?我在互联网上找到了一些关于iframe的内容,但我的网站上没有iframe ...

我认为最奇怪的是,如果我直接访问该链接,一切都可以正常运行......

那么如何避免这种行为?

感谢您的回复

1 个答案:

答案 0 :(得分:21)

错误消息警告iframe是没有适当权限的沙盒子

是的,您正在点击iFrame。这是一个沙盒iFrame的例子。

<iframe sandbox src="http://usercontent.example.net/getusercontent.cgi?id=12193"></iframe>

如果您在GMail上检查元素,您会发现iFrame无处不在。沙箱属性并不总是自动附加,因为沙箱属性控制允许的内容。

当需要弹出窗口时,属性将会改变

<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms" src="http://usercontent.example.net/getusercontent.cgi?id=12193"></iframe>

这样做是为了保护用户和邮件应用程序不受 XSS

的影响

iFrame必须允许弹出窗口,新窗口或脚本。无论您正在尝试什么(可能只是导航),操作都会被沙盒阻止。