Flex HTML Post Error - 安全问题?

时间:2010-12-05 23:48:50

标签: flex flash crossdomain.xml

我创建了一个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)。

感谢您对此提供任何帮助。我太近了,就像我说我在一个远程站点上工作一样,但我不确定如何。我发布嵌入代码的所有其他网站都失败了。

1 个答案:

答案 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参数...