0

我在我的项目中使用 dojo 文件上传组件。如果我从服务器加载 dojo.js 库,一切正常,但是如果我使用 CDN(另一台服务器),则文件上传组件会给出 CROSS DOMAIN XML ERROR 并且不起作用。

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

有没有人有办法解决这个问题?请注意,如果我从服务器加载 dojo 库,则一切正常,但整体页面加载速度非常慢。这就是我们使用 CDN 的原因。

4

1 回答 1

0

我想到了。实际上,我们必须创建一个文件名 crossdomain.xml 并将其放在我们域的根目录中。例如,Yahoo 使用了 google flash 组件,它是从 yahoo 网站的 google 服务器加载的。因此,如果该 flash 组件尝试与 yahoo 服务器通信,则浏览器将尝试从 yahoo Web 服务器下载 crossdomain.xml 文件,并查看是否允许 google 域。

在我的情况下,我使用了 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 感谢您的宝贵意见。

于 2013-04-10T14:49:55.997 回答