17

其实我希望我知道从哪里开始......

我在我的个人网站中嵌入了第三方 SWF 图片库控件。

SWF 是 XML 驱动的。我按如下方式动态加载 XML 文件....

  var flashvars = { xmlPath: "http://www.example.com/xml.aspx" };
                var params = { allowFullScreen: "true", wmode: "transparent", allowScriptAccess: "always"};
                var attributes = {};
                swfobject.embedSWF("main.swf", "gallery", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

问题是该页面没有按预期工作。实际上它只在 Firefox 中有效,在 Chrome 或 IE 中无效

用 fiddler 检查请求后,我发现文件 crossdomain.xml 没有找到。所以,stackoverflow 帮我找到了一个样本......

<?xml version="1.0" ?>
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only"/>
  <allow-access-from domain="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

添加 crossdomain.xml 后,网页现在可以在 Firefox 和 IE 中运行,在 Chrome 中我仍然有问题。

所以这里有几个问题......

1)什么是crossdomain.xml?

2) 我怎样才能让我的网页也能在 Chrome 中运行?

4

2 回答 2

24

“跨域策略文件是一种 XML 文档,它授予 Web 客户端(例如 Adob​​e Flash Player、Adobe Reader 等)跨多个域处理数据的权限。”。取自 Adob​​e 网站http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html

编辑:对问题 2 的回答:Flex crossdomain.xml 在 Chrome/Firefox 中无法正常工作?. 为开发人员安装 Adob​​e Flash Player、Fiddler(或类似工具),这些工具应该会让您的生活更轻松。另请阅读http://kb2.adobe.com/cps/839/cpsid_83950.html

于 2010-11-13T19:46:10.200 回答
8

对于所有像我一样的新手来说,SWF 也可以在 Chrome 中运行!

不同之处在于http://www.example.com并且http://example.com是两个不同的“实体”。

我正在将文件加载到var flashvars = { xmlPath: "http://www.example.com/xml.aspx" };Chrome 并在“不同的域”上进行测试http://example.com

于 2010-11-13T23:08:12.243 回答