我正在项目中使用dojo文件上传组件。如果我从我的服务器加载dojo.js库,一切都很好,但如果我使用CDN(另一台服务器),那么文件上传组件会提供CROSS DOMAIN XML ERROR并且不起作用。
我知道问题是FLASH上传组件是从另一台服务器(CDN)下载的,因此浏览器认为它是一个跨域xml请求。
是否有任何人可以解决此问题? 请注意,如果我从服务器加载dojo库,那么每件事都可以正常工作,但整体页面加载是非常慢。这就是我们使用CDN的原因。
答案 0 :(得分:0)
我明白了。实际上我们必须创建一个文件名crossdomain.xml并将其放在我们域的根目录下。例如,雅虎使用谷歌闪存组件,它是从雅虎网站上的谷歌服务器加载。因此,如果该闪存组件尝试与雅虎服务器通信,那么浏览器将尝试从雅虎网络服务器下载crossdomain.xml文件,并查看是否允许谷歌域名。
在我的情况下,我使用了DOJO CDN,在允许使用crossdomain.xml文件之后,组件工作正常。文件格式如下:
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="ajax.googleapis.com"/>
<allow-access-from domain="yui.yahooapis.com"/>
</cross-domain-policy>
@CBroe感谢您的宝贵意见。