我有一个Web服务器应用程序(基于python)。位于此服务器的Flash应用程序应连接到服务器。麻烦在于crossdomain.xml。
<?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="*" to-ports="*"/>
</cross-domain-policy>
这是这个文件(它在根目录中)。
确切的问题是flash应用程序不加载此文件。有没有办法手动执行此操作?例如,直接从flash脚本加载它或在给定端口组成一个新应用程序,它会将此文件发送到任何连接的套接字。
答案 0 :(得分:3)
您没有使用<cross-domain-policy>
关闭</cross-domain-policy>
代码 - 您是否忘记复制/粘贴最后一行?否则试试。您也可能不需要DOCTYPE
行和to-ports="*"
。
我们使用这个crossdomain.xml文件,只要它在根文件夹中,它每次都适合我们
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
如果是https域,并且您希望非https域上的Flash能够访问它,则需要将allow-access-from
行更改为此
<allow-access-from domain="*" secure="false" />
值得尝试的最后一件事就是添加这一行:
<allow-http-request-headers-from domain="*" headers="*"/>
但我们从来没有必要使用它来通过http进行标准闪存加载/保存。
答案 1 :(得分:2)
你可以在Firefox中运行SWF并使用firebug或篡改数据来查看它是否完成了任何策略文件请求?如果是这样,请将文件移动到相应目录。