2010-11-16 92 views
1

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

但是,当我采用嵌入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脚本进行通信,以及如何让它工作?

回答

1

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

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

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

如果可以,请发布链接。

+0

因此,这里是外部站点的链接,它不能与PHP脚本进行通信。 http://ryan.d3-systems.com/?p=148和这里是完全相同的脚本工作正常,http://securedmark.com/demo.php。你可以看到我有一个crossdomain.xml这里http://ryan.d3-systems.com/crossdomain.xml和这里http://d3-systems.com/crossdomain.xml。所以我无法弄清楚我在这里做错了什么,因为它在托管网站上效果很好。 – Ryan 2010-12-06 02:53:43

+0

@Ryan:你解决了这个 – goliatone 2011-03-11 09:32:42

+0

是的,这让我照顾了。谢谢! – Ryan 2012-10-11 19:35:34

0

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

+0

没有运气,对不起。添加AllowScriptAccess后,没有任何更改。在托管域后面引用时仍然有效,并且在远程域上不起作用 – Ryan 2010-11-17 15:23:08

0

请确保您的规范重定向不会妨碍脚本。 我注意到你在两个域中都没有重定向,也许你在脚本中都使用了有效的前缀,即:

它可能不是一样的www.d3-systems.com到d3- systems.com ...