什么是 crossdomain.xml 文件?
Posted
技术标签:
【中文标题】什么是 crossdomain.xml 文件?【英文标题】:What is crossdomain.xml file? 【发布时间】:2011-05-09 15:03:45 【问题描述】:其实我希望我知道从哪里开始......
我在我的个人网站中嵌入了第三方 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。所以,*** 帮我找到了一个样本……
<?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 和 I.E 中运行。在 Chrome 中我仍然有问题。
所以这里有几个问题......
1) 什么是crossdomain.xml?
2) 如何让我的网页也能在 Chrome 中运行?
【问题讨论】:
【参考方案1】:“跨域策略文件是一种 XML 文档,它授予 Web 客户端(例如 Adobe Flash Player、Adobe Reader 等)跨多个域处理数据的权限。”。取自 Adobe 网站http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html。
编辑:回答问题 2:Flex crossdomain.xml not working correctly in Chrome/Firefox?。为开发人员安装 Adobe Flash Player、Fiddler(或类似工具),这些工具应该会让您的生活更轻松。另请阅读http://kb2.adobe.com/cps/839/cpsid_83950.html。
【讨论】:
谢谢!您能否指出为什么 SWF 也不能与 Chrome 一起使用? 我认为这是因为 SO 比 Google 更快更容易:) 其实我是在 fiddler 的帮助下了解到丢失的 crossdomain.xml 文件 @JNF 附言。这是有意的;-) @jonschlinkert 来吧,我没那么傻。为什么如此严肃?我并不是说您应该信任什么来源!另外,您认为 SO 总是正确的吗?不是由一个长镜头。我见过无数错误答案,其中很多甚至被标记为已接受...【参考方案2】:对于所有像我一样的新手来说,SWF 也可以在 Chrome 中运行!
区别在于http://www.example.com
和http://example.com
是两个不同的“实体”。
我正在将文件加载到 var flashvars = xmlPath: "http://www.example.com/xml.aspx" ;
并在“不同域”http://example.com
上使用 Chrome 进行测试
【讨论】:
这有点奇怪。正如here定义的那样,origin的描述是:协议+端口+主机名。不确定,但可能是两种情况下的主机名不同。以上是关于什么是 crossdomain.xml 文件?的主要内容,如果未能解决你的问题,请参考以下文章
Amazon S3 crossdomain.xml 始终显示 403 Forbidden
是否可以在 AS3 中查看从 SWF 下载的 crossdomain.xml?