我的 Flex 应用程序托管在http://<ip>:8080/MyApp/Login.html
,当我去那里时,http://<ip>:8080/crossdomain.xml
会创建一个请求,以及一个https://<ip>:8080/crossdomain.xml
. 当我尝试对同一服务器使用远程 Java 对象调用并从中获取资产时,就会发生这种情况。我不在端口 8080 上托管 https,因此此 https 调用将失败。
问题是 https 调用有时需要很长时间才能失败(它会因 tomcat 连接器中的 connectionTimeout 长度而失败)。其他时候它很快就会失败。但是,在确实需要很长时间才能失败的情况下,页面不会完成加载,因为我正在等待这些资产并且远程对象调用数据。
我尝试设置对 crossdomain.xml 的强制检索,其中包含以下内容:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>
使用 AS3 代码:
Security.loadPolicyFile(browserUrl+"/assets/crossdomain.xml");
initialize
在应用程序的事件中被调用。根据chrome和wireshark正在正确调用和检索上述强大的crossdomain.xml文件,但仍在尝试服务器根目录的默认位置,并且https尝试仍在超时。直到该尝试超时,该应用程序才完成加载。