我使用Dojo构建工具创建了一个自定义构建,包括我正在使用的所有模块。这非常有效。但是,现在我已将该构建移动到CDN上,当它尝试加载语言环境文件时,我遇到了访问控制错误:
XMLHttpRequest cannot load http://<CDN domain>/js/release/dojo/dojo/nls/custom-dojo_en-gb.js. Origin <site domain> is not allowed by Access-Control-Allow-Origin
Uncaught Error: Could not load 'dojo.nls.custom-dojo_en-gb'; last tried './nls/custom-dojo_en-gb.js'
如何让它从CDN域加载该文件呢?或者如果不这样做,我可以添加跨域文件以允许从主域加载吗?
答案 0 :(得分:5)
对此我的解决方案对我来说更接近RTFM!您可以将loader = xdomain传递给构建工具,以及要烘焙到构建中的域。然后你引用dojo.xd.js而不是dojo.js,一切都很好:
./build.sh profileFile=/path/to/profile.js action=clean,release loader=xdomain xdDojoPath=http://cdndomain/js/release/dojo releaseDir=/path/to/release