尝试加载自定义类时出现跨域错误。这是我的目录结构
LIB
/ dijit的
/ CustomClass1
GIC
/ dijit的
/ CustomClass2
CustomClass2继承自CustomClass1,但这是我收到跨域错误的地方。
我在CustomClass2中包含了require:
require("lib.dijit.CustomClass1");
我相信我需要添加一个模块路径。我尝试了下面的声明(有很多变化),但我没有让它工作。有什么想法吗?
dojo.registerModulePath("gic", "gic");
答案 0 :(得分:1)
跨域是指从服务器检索javascript文件,该服务器不是为Web应用程序本身提供服务的域。一个例子是从CDN加载dojo。
http://dojotoolkit.org/reference-guide/1.7/quickstart/cross-domain.html
根据您发布的内容,我无法判断您是否正在使用CDN中的dojo。如果是,那么此链接应该可以帮助您配置模块路径:
http://dojotoolkit.org/documentation/tutorials/1.6/cdn/
如果没有,那么重要的是要注意第二个参数是目录路径并且是相对于dojo.js
dojo
dojo.js
lib
dijit
gic
dijit
dojo.registerModulePath("lib", "../lib");
dojo.registerModulePath("gic", "../gic");
如果您在执行自定义构建时遇到此问题,则需要在配置文件中设置前缀:
prefixes: [
[ "dijit", "../dijit" ],
[ "lib", "../lib" ],
[ "gic", "../gic" ]
]