【问题标题】:Crossdomain xml and flash跨域 xml 和 flash
【发布时间】:2013-07-19 23:39:24
【问题描述】:

我有一个 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-script 加载它或在给定端口上创建一个新应用程序,该应用程序会将这个文件发送到任何连接的套接字。

【问题讨论】:

  • @oedo,哦,对不起。这是我在复制粘贴时的错误。那么第二句话呢?我不明白你在说什么。
  • 我在下面扩展了我的答案,希望对您有所帮助:)

标签: flash sockets cross-domain


【解决方案1】:

您没有用&lt;/cross-domain-policy&gt; 关闭&lt;cross-domain-policy&gt; 标记-您只是忘记复制/粘贴最后一行了吗?否则试试。您也可能不需要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 进行标准 Flash 加载/保存。

【讨论】:

  • 只是重新阅读您的帖子,这行是否“位于此服务器上的 Flash 应用程序应连接到服务器。”意思是flash文件位于server.com/dir/flash.swf,而phython也在server.com/someotherdir/python.py?如果是这样,您就不需要 crossdomain.xml 并且无论如何它都不会被 Flash 加载。它仅在 swf 的域和它尝试访问的域不同时使用。
  • 同一服务器但地址不同。
  • 不同的域?或者只是域内的不同地址?另外,你在 flash 中使用什么命令来加载数据?
【解决方案2】:

您能否在 Firefox 中运行 SWF 并使用萤火虫或篡改数据来查看它是否需要任何策略文件请求?如果是,请将文件移动到相应目录。

【讨论】:

  • 例如,我能在 firebug 中看到什么? swf 文件只有 get-request。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 2011-07-31
  • 2012-09-30
相关资源
最近更新 更多