其实我希望我知道从哪里开始...
我已经在我的个人网站中嵌入了第三方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或I.E。
用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和I.E.中使用。在Chrome中,我仍有问题。
所以这里有几个问题......
1)什么是crossdomain.xml?
2)如何让我的网页也能在Chrome中运行?
答案 0 :(得分:23)
“跨域策略文件是一种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?。为开发人员,Fiddler(或类似工具)安装Adobe Flash Player,这些工具应该让您的生活更轻松。另请阅读http://kb2.adobe.com/cps/839/cpsid_83950.html。
答案 1 :(得分:8)
对于像我这样的所有新手,SWF也适用于Chrome!
区别在于http://www.example.com
和http://example.com
是两个不同的“实体”。
我正在将文件加载到var flashvars = { xmlPath: "http://www.example.com/xml.aspx" };
并使用Chrome在“不同的域”http://example.com
上进行测试