我有一个在http://server/abc/service中运行的 Web 服务,Flash 正在从不同的域访问它。我将一个跨域策略文件部署到http://server/abc/crossdomain.xml并使用以下方法让 Flash 加载它:
flash.system.Security.loadPolicyFile("http://server/abc/crossdomain.xml");
在主影片剪辑的构造函数中。但是,当 Flash 启动时,它会请求并加载这个文件(在 Firebug 中观察到),但随后它也会从不存在的服务器的根目录(即从http://server/crossdomain.xml)请求它。随后的 HTTP 请求无法报告安全跨域错误。当我将策略文件放到服务器的根目录时,一切正常。
为什么它从根目录请求策略文件,甚至认为它从子目录加载它?为什么子目录策略文件不够用?
我还应该注意,这两个策略文件是在发出任何应用程序 HTTP 请求之前加载的。