我创建了一个swf,它创建了一些HTML帖子。当我在本地运行并编译swf时,它成功地发布了我的域上托管的PHP代码。然而,当我然后将我的swf上传到我的域,然后改变embed标签以获得我的托管swf的完全限定路径时,swf将正确加载,但它会将任何HTML帖子发送到我的PHP脚本。我有一个带有完全限定网址的嵌入标记的原因是我的目标是能够将html嵌入代码放在许多不同的网站上。
我让它在一个远程站点上运行,并且其中有一个通配符crossdomain.xml文件。但是,当我尝试将crossdomain.xml应用于任何托管站点或本地计算机时,当我使用带有完全限定URL的嵌入时,如果我只是在我的计算机上本地托管的swf,则HTML post工作正好。
我觉得这与crossdomain.xml文件有关,但我想我不了解安全模型的某些方面。
所以我的目标是能够在许多其他网站上使用完全合格的swf(例如,“http://www.abc.com/myswf.swf”)粘贴嵌入的HTML代码并拥有它制作标准HTML帖子到我的主页(http://home.com)。
感谢您对此提供任何帮助。我太近了,就像我说我在一个远程站点上工作一样,但我不确定如何。我发布嵌入代码的所有其他网站都失败了。
答案 0 :(得分:1)
好的,我正在编辑我的答案,按照你刚刚给出的例子。
根据我得到的错误报告,问题在于外部接口调用不允许从swf到托管swf的站点。
它适用于第二个示例,因为调用是在同一个沙箱中进行的。
取自文档:
SecurityError — The containing environment belongs to a security sandbox
to which the calling code does not have access. To fix this problem,
follow these steps:
In the object tag for the SWF file in the containing HTML page,
set the following parameter:
<param name="allowScriptAccess" value="always" />
In the SWF file, add the following ActionScript:
flash.system.Security.allowDomain(sourceDomain)
您可能还需要检查嵌入代码中的allowNetworking参数...