【问题标题】:Security error accessing Service outside of FlexBuilder访问 FlexBuilder 之外的服务时出现安全错误
【发布时间】:2010-03-16 18:17:56
【问题描述】:

我对 Flex 很陌生,我认为它令人头疼。

我正在构建一个小 Flash 应用程序,它将通过 HTTP 使用一些 Web 服务。当我在 Flexbuilder 中并在那里运行我的应用程序时,它运行良好。当我转到我的操作系统上的 FlexBuilder 项目并双击它时,它工作正常。当我压缩我的 bin-debug 文件时,我收到了这个错误:

Security error accessing url faultCode:Channel.Security.Error faultString:
'Security error accessing url' faultDetail:'Destination: DefaultHTTP'

所以我用谷歌搜索并获得了有关 crossdomain.xml 文件的信息。好吧,我不能在我正在调用的服务中放置一个跨域文件,但我可以在其他地方放置一个。所以我在 Flex 应用中加入了以下几行:

Security.allowDomain("vx1391");

Security.loadPolicyFile("http://vx1391:8080/job/Remote%20FIT%20Runner/ws/trunk/flash-cross-domain.xml");

我的 cross-domain.xml 文件是完全开放的:

<cross-domain-policy>
  <allow-access-from domain="*"/>

跨域策略>

我知道这在 prod 环境中很糟糕,但现在我只需要让它在本地工作,但在 FlexBuilder 之外。

有人想帮助这个灵活的菜鸟吗?

【问题讨论】:

    标签: apache-flex security flexbuilder flash


    【解决方案1】:

    处理此问题的最佳方法是使用代理而不是 crossdomain.xml 文件。您可以使用 Apache 或 BlazeDS 作为代理。只要来自 SWF 的所有请求都发送到 SWF 来自的同一站点,那么您就不应该收到任何安全错误。如果您只需要为自己的测试解决这个问题,那么另一种选择是将 SWF 添加到 Flash Player 信任文件(这是 FB 所做的)。

    【讨论】:

    • 我将 SWF 添加到了 Trust 文件中,效果非常好。稍后我会弄乱代理的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2016-04-29
    • 2012-12-30
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多