什么是crossdomain.xml文件?

18

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

我在我的个人网站中嵌入了一个第三方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 中也能正常工作?

2个回答

25

"跨域策略文件是一种XML文档,可以授权网络客户端(例如Adobe Flash Player、Adobe Reader等)处理跨多个域的数据。" 从Adobe网站获取http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html

编辑:回答问题2:Flex跨域XML在Chrome/Firefox中无法正常工作?安装适用于开发人员的Adobe Flash Player、Fiddler(或类似工具),这些工具应该能够使您的生活更轻松。还请阅读http://kb2.adobe.com/cps/839/cpsid_83950.html


谢谢!您能告诉我为什么SWF文件在Chrome中也无法工作吗? - OrElse
15
我认为这是因为SO比Google更快、更容易使用 :) - user60456
1
@JNF 嘘,这是有意的;-) - Tomas Voracek
我一直想知道为什么...所以你是那些相信互联网上所有读到的东西的人之一吗?我一直很好奇为什么人们一直在抱怨这个。如果每个人都只用谷歌,Stack Overflow就不会存在了。但问题是1)谷歌搜索不是一个信任系统,2)我们无法“纠正”谷歌搜索结果,3)你可能会花一整天去寻找答案,a)永远不会使用正确的搜索词,或者b)使用正确的搜索词却找到错误的信息。 - jonschlinkert
1
@jonschlinkert 别这样,我并不是那么蠢。为什么这么严肃呢?我并没有说你应该信任哪个来源!而且,你认为 Stack Overflow 总是正确的吗?远非如此。我见过无数错误的答案,其中很多甚至被标记为已接受... - Tomas Voracek
显示剩余4条评论

8
对于像我这样的新手,SWF也可以在Chrome中使用!
不同之处在于http://www.example.comhttp://example.com是两个不同的实体。
我正在加载文件到var flashvars = { xmlPath: "http://www.example.com/xml.aspx" };并在Chrome上进行测试,在“不同的域名”http://example.com上。

虽然有点奇怪。根据此处的定义,源的描述是:协议+端口+主机名。不确定,但两种情况下主机名可能不同。 - aka_007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接