Dojo跨域加载问题

时间:2012-03-31 20:35:14

标签: dojo

尝试加载自定义类时出现跨域错误。这是我的目录结构

  

LIB

     
    

/ dijit的

         
      

/ CustomClass1

    
  
     

GIC

     
    

/ dijit的

         
      

/ CustomClass2

    
  

CustomClass2继承自CustomClass1,但这是我收到跨域错误的地方。

我在CustomClass2中包含了require:

require("lib.dijit.CustomClass1");

我相信我需要添加一个模块路径。我尝试了下面的声明(有很多变化),但我没有让它工作。有什么想法吗?

dojo.registerModulePath("gic", "gic");

1 个答案:

答案 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" ]
]