【问题标题】:What does this javascript error mean? Permission denied to call method to Location.toString这个javascript错误是什么意思?拒绝调用 Location.toString 方法的权限
【发布时间】:2010-09-07 00:42:42
【问题描述】:

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

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

我看到 google 帖子表明这与 flash 和我们的 crossdomain.xml 有关。发生这种情况的原因是什么,您如何解决?

【问题讨论】:

    标签: javascript flash


    【解决方案1】:

    您是否使用 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,您将得到这个(或类似的)异常。另请注意,如果您有来自不同子域的内容,同样的来源策略也可以生效。 Here 您可以通过示例找到简短且中肯的解释。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        这个post 表明有一行需要添加到crossdomain.xml 文件中。

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

        【讨论】:

          【解决方案4】:

          这可能是由于 4 月初发布的 Flash Player 版本发生了变化,我不太确定具体细节,但我认为此功能存在安全问题。

          您需要做的确实是将其添加到您的 crossdomain.xml(应该在您的服务器 webroot 中)

          您可以在这里阅读更多内容:http://www.adobe.com/devnet/flashplayer/articles/flash_player9_security_update.html

          crossdomain.xml 的典型示例是twitters,有关文件如何工作的更多信息可以找到here.

          【讨论】:

            猜你喜欢
            • 2010-10-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-12
            • 1970-01-01
            • 2010-10-10
            • 1970-01-01
            相关资源
            最近更新 更多