代码之家  ›  专栏  ›  技术社区  ›  MikeHoss

访问FlexBuilder外部的服务时出现安全错误

  •  0
  • MikeHoss  · 技术社区  · 15 年前

    我对flex很陌生,我觉得它很难理解。

    我正在构建一个小的flash应用程序,它将通过http使用一些web服务。当我在flexbuilder中运行我的应用程序时,它运行得很好。当我转到操作系统上的flexbuilder项目并双击它时,它工作得很好。当我压缩bin调试文件时,会出现以下错误:

    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中。

    有人想帮忙解决这个问题吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   James Ward    15 年前

    处理此问题的最佳方法是使用代理而不是crossdomain.xml文件。您可以使用apache或blazeds作为代理。只要来自swf的所有请求都发到swf来自的同一站点,就不应该出现任何安全错误。如果您只需要在自己的测试中绕过这个问题,那么另一个选择是将swf添加到flash player信任文件中(这就是fb所做的)。