1

我在让我的跨域策略生效时遇到了一些困难。我有一个http://www.server.com/加载 XML 和其他文件的 swf。我希望能够将该 swf 嵌入到不在同一个域中的其他 HTML 页面(YouTube 样式)中。当通过它的本地服务器访问时它工作正常,http://www.server.com/my.swf或者http://www.server.com/swf.html当我尝试嵌入它时它不会加载 XML 和/或给我一个Security sandbox violation

发布的 SWF 设置为Security.REMOTE

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>

希望你能帮忙

更新 1

嵌入代码的示例是:

<!-- Embedding -->
<object width='400' height='300'>
<param name='movie' value='http://www.server.com/my.swf'></param>
<param name='allowFullScreen' value='true'></param>
<param name='allowscriptaccess' value='always'></param>
<param name='FlashVars' value="stream=1281002679" ></param>
<embed src='http://www.server.com/my.swf' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='400' height='300'></embed>
</object>

...可以添加到任何域的任何网页

更新 2

policyfiles.txt(192.168.100.55 是我的本地测试服务器,包含嵌入式示例):

OK: Root-level SWF loaded: http://www.server.com/my.swf
OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at http://192.168.100.55/data/configuration.xml?refresh=0.2777715688571334 by requestor from http://www.server.com/my.swf
Warning: Failed to load policy file from http://192.168.100.55/crossdomain.xml
Error: Request for resource at http://192.168.100.55/data/configuration.xml?refresh=0.2777715688571334 by requestor from http://www.server.com/my.swf is denied due to lack of policy file permissions.

flashlog.txt 提取 Warning: Failed to load policy file from http://192.168.100.55/crossdomain.xml

我需要通过加载crossdomain.xmlSecurity.loadPolicyFile('http://www.server.com/crossdmoain.xml')吗??

4

1 回答 1

1

错误:由于缺少策略文件权限,来自http://www.server.com/my.swf的请求者对http://192.168.100.55/data/configuration.xml?refresh=0.2777715688571334的资源请求被拒绝。

看起来您的 swf 尝试从本地服务器而不是 www.server.com 加载配置文件

您应该使用绝对路径

于 2010-08-11T17:22:52.713 回答