访问FlexBuilder外部服务的安全性错误

时间:2010-03-16 18:17:56

标签: flex security flexbuilder flash

我是Flex的新手,我认为这是一个令人头疼的问题。

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

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

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

Security.allowDomain("vx1391");

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

我的跨域domain.xml文件是开放式的:

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

< /交叉域的策略>

我知道这对于产品环境是不好的,但是现在我只需要在FlexBuilder之外的本地工作。

有人想帮助这个Flex-noob吗?

1 个答案:

答案 0 :(得分:1)

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