此javascript错误是什么意思?拒绝调用Location.toString方法的权限

时间:2020-03-05 18:43:57  来源:igfitidea点击:

这个错误刚刚开始在我们的网站上弹出。

拒绝调用Location.toString方法的权限

我看到了Google帖子,提示这与Flash和我们的crossdomain.xml有关。是什么原因导致这种情况发生,以及如何解决?

解决方案

回答

我们是否使用JavaScript在指向不同域的框架/ iframe之间进行通信? JS"相同来源/域"安全策略不允许这样做。即,如果我们有

<iframe name="foo" src="foo.com/script.js">
<iframe name="bar" src="bar.com/script.js">

并且bar.com上的脚本尝试访问window [" foo"]。Location.toString,我们将获得此(或者类似的)异常。另请注意,如果我们具有来自不同子域的内容,则也可以使用相同的原始策略。在这里,我们可以找到带有示例的简短说明。

回答

我们可能遇到过此帖子,但似乎闪存安全更新更改了crossdomain.xml的行为,要求我们指定安全策略以允许从远程域发送任意标头。 Adobe知识库文章(也在原始文章中引用)在这里。

回答

这篇文章建议有一行需要添加到crossdomain.xml文件中。

<allow-http-request-headers-from domain="*" headers="*"/>

回答

这可能是由于4月初发布的Flash Player版本发生了更改而引起的,我不太确定具体细节,但是我认为此功能存在安全方面的顾虑。

实际上,我们需要做的是将其添加到crossdomain.xml(应该在服务器的webroot中)

我们可以在此处了解更多信息:http://www.adobe.com/devnet/flashplayer/articles/flash_player9_security_update.html

crossdomain.xml的典型示例是twitters,有关文件的工作原理的更多信息,请参见此处。