crossdomain.xml,这是一个非常简单的概念,大多数开发人员可能会通过这个概念来获取信息: -
跨域策略文件是一种XML文档,它授予Web客户端(例如Adobe Flash Player或Adobe Acrobat(但不一定限于这些))跨域处理数据的权限。当客户端请求托管在特定源域上的内容并且该内容将请求定向到其自身以外的域时,远程域需要托管允许访问源域的跨域策略文件,从而允许客户端继续事务。
问题:
我的网站www.A.com上有一个flash hls播放器(player.swf)。现在请求媒体服务器www.B.com/playlist.m3u8这是一个安全的hls请求(AES-128加密)。 playlist.m3u8中包含的关键网址指向Web服务器www.C.com/keyPage.jsp
现在我的player.swf理想情况下应该在调用它们的同时为两个服务器调用crossdomain.xml并继续进行后续调用,但在我的情况下,一旦玩家从www.C.com接收到第二个crossdomain.xml,它就会停止制作任何其他电话。但是,如果我将密钥交付应用程序从www.C.com移至www.A.com,则可以正常工作。
我对这样的行为感到困惑,因为根据文档,目标服务器使用了crossdomain.xml来验证驻留在其他服务器上的客户端。那么如果我使用多个服务器并提供跨域xml,这有什么关系呢?对于所有这些用于单个闪存应用程序。
P.S。 - 我已尝试使用不同的在线hls播放器进行相同的过程,并且每个人都描绘了相同的行为
编辑1 仅供参考,我的跨域xml是
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" secure="false"/>
<site-control permitted-cross-domain-policies="all"/>
</cross-domain-policy>
答案 0 :(得分:1)
经过深入研究这个问题后,我发现问题出现了,因为 C.com 是一个jboss服务器。我尝试使用相同的架构,首先用IIS取代C.com,然后用Apache tomcat取代。在这两种情况下,所有呼叫都被请求并正确提供。
所以上面的问题如果我可以从我的Flash播放器请求两个不同服务器的2个跨域xmls 是的,我可以这样做。
虽然问题仍然存在,但为什么从jboss提供crossdomain xml会停止后续调用