我们公司现在用FLEX做一个企业级资源整合平台,是将其他分布在其他服务器上的工程模块加载到自己平台上来进行资源整合操作,在这个问题上,首先要解决安全沙箱问题,这个问题也就是针对策略文件的配置,然后再来解决加载进来的模块与本地工程的一个交互.
本地工程代码:
在此视图位置添加模块标签
在页面初始化实现
加载成功后在容器事件的回调函数中设置URL
其他服务器上的工程模块只需要在初始化的时候 与策略文件配对
策略文件crossdomain.xml写法(注:放入服务器的根目录下,不是工程目录额,比如TOMCAT 的ROOT文件夹下 写法如下)
本地工程代码:
<s:HGroup width="100%" height="559">
<mx:ModuleLoader id="moduleLoader"/>
</s:HGroup>
在此视图位置添加模块标签
Security.allowDomain("ccit_application_Server");
Security.loadPolicyFile("http://192.168.1.110:8080/crossdomain.xml");//加载策略文件 解决沙箱问题
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE,loadHandler);
loader.load(new URLRequest("http://192.168.1.110:8080/crossdomain.xml"));//执行加载
在页面初始化实现
加载成功后在容器事件的回调函数中设置URL
moduleLoader.url = adressNew+"/ccit_application_Server/bin/com/module/app.swf";
其他服务器上的工程模块只需要在初始化的时候 与策略文件配对
Security.allowDomain("*");
策略文件crossdomain.xml写法(注:放入服务器的根目录下,不是工程目录额,比如TOMCAT 的ROOT文件夹下 写法如下)
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>