我是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="*"/>
&LT; /交叉域的策略&GT;
我知道这对于产品环境是不好的,但是现在我只需要在FlexBuilder之外的本地工作。
有人想帮助这个Flex-noob吗?
答案 0 :(得分:1)
处理此问题的最佳方法是使用代理而不是crossdomain.xml文件。您可以使用Apache或BlazeDS作为代理。只要SWF的所有请求都发送到SWF来自的同一站点,那么您就不会遇到任何安全错误。如果您只需要为自己的测试解决这个问题,那么另一种方法是将SWF添加到Flash Player信任文件中(这就是FB所做的)。