SWF跨域访问

时间:2010-11-16 22:53:18

标签: flex actionscript flash crossdomain.xml

我有一个SWF,它在同一个域上联系了一个php脚本。在第一种情况下,两者都托管在同一个域后面并且没有任何问题进行通信。一切都很好。

然而,当我采用相同的标记嵌入SWF并将其粘贴到另一个站点上时(在本地托管和远程托管代码中使用swf的完全限定路径),SWF不再与php脚本通信我中写道。

我在我的网站上添加了一个跨域文件,如下所示。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy 
  SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

我将此跨域文件添加到托管域的根目录以及托管swf的目录。然而,两者都没有解决问题。有人能告诉我为什么我的SWF没有与我的PHP脚本通信以及我如何使它工作?

3 个答案:

答案 0 :(得分:1)

allowScriptAccess是一个嵌入参数,用于让SWF在其包含的DOM中使用javascript。所以它不会影响跨域访问。

crossdomain.xml文件应该是您需要添加到SWF尝试与之通信的外部域的webroot所需的全部内容。

在尝试跨域通信时,您是否可以仔细检查是否没有收到404错误或其他HTTP问题?是否抛出任何可以帮助您调试问题的错误异常。

如果可以,请发布链接。

答案 1 :(得分:0)

尝试将allowScriptAccess="always"参数添加到您的嵌入和对象标记中。

答案 2 :(得分:0)

确保您的规范重定向不会妨碍脚本。 我注意到你没有在两个域中重定向相同的内容,也许你的目标是两个都带有有效前缀的脚本,即:

d3-systems.com可能与www.d3-systems.com不一样......