我已将我的flex应用程序的协议从https更改为http,而flashplayer仍然希望使用https下载crossdomain.xml,但使用http端口。 该应用程序在http://domain01:8080/flex访问,它想要获取https:.. samedomain ..:8080 / crossdomain.xml(在https:.. samedomain..no_port / flex它工作正常)。
任何人都知道为什么?
非常感谢,
丹尼尔
答案 0 :(得分:0)
没有直接回答,因为我没有尝试过这种指定非默认端口的方案,但有几条信息可能会引导您回答:
这可能是有意义的:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*.example.com" to-ports="507,516-523"/>
</cross-domain-policy>
或者这个:
非套接字策略文件的10,0,12,0个站点控制的允许跨域策略默认值是“仅限主”
也许尝试使用较旧版本的Flash Player来查看9-> 10更改中的某些内容是否会导致问题,然后在更改日志中查找更改可能会更容易,或者可能是新版本中的错误。< / p> 祝你好运 肖恩
答案 1 :(得分:0)
System.security.loadPolicyFile(的 'https:// MYDOMAIN:端口/的crossdomain.xml');
答案 2 :(得分:0)
当遇到跨域问题时,值得记住的是,通过使用Security类,您始终可以明确控制加载的crossdomain.xml文件(事实上,策略文件可以包含您想要的任何名称)。在处理更复杂的实际案例时(例如,使用负载平衡或反向代理),从服务器根目录加载策略文件的默认行为通常过于严格。
尝试使用:
Security.loadPolicyFile(<URI to the policy file goes here>);
ASDocs是here并且很好地解释了它。
通过控制政策的加载方式,您可以获得更多自由和从可能带来痛苦,令人沮丧的体验中汲取大量猜测。 Flash Player允许您加载多个策略文件,如果您需要与多个服务层集成(例如,在一台主机上通过HTTPS而另一台主机通过HTTP),则可以使用它。
祝你好运,泰勒