2013-04-10 54 views
0

我在我的项目中使用了dojo文件上传组件。如果我从我的服务器加载dojo.js库,一切正常,但如果我使用CDN(另一台服务器),那么文件上传组件会给出CROSS DOMAIN XML ERROR并且不起作用。dojox.form.Uploader中的cross domain xml错误

我知道问题是FLASH上传组件是从另一个服务器(CDN)下载的,所以浏览器认为它是一个跨域xml请求。

有没有人有办法解决这个问题?请注意,如果我从我的服务器加载dojo库然后每件事情都很好,但整体页面加载速度很慢。那为什么我们使用CDN。

+1

您是否尝试添加跨域策略文件?它位于_your_服务器上,并告诉Flash播放器它可以访问您的域名。 http://kb2.adobe.com/cps/142/tn_14213.html – CBroe 2013-04-10 13:12:39

+0

你能告诉如何配置它在Windows服务器上(2008 R2) – 2013-04-10 13:17:13

回答

0

我想通了。实际上,我们必须创建一个名为crossdomain.xml的文件,并将其放在我们域的根目录下。例如,雅虎已经使用谷歌flash组件,并从雅虎网站的谷歌服务器加载。因此,如果该闪存组件试图与雅虎服务器通信,那么浏览器将尝试从yahoo web服务器下载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感谢您的宝贵意见。