3

我刚开始学习道场。我按照一个站点 Widget 示例使用了一些不同的方式来加载 Dojo 库。我喜欢使用 AOL 引用来加载 dojo.js,如下所示:

<script type="text/javascript" 
  src="http://o.aolcdn.com/dojo/1.2.0/dojo/dojo.xd.js">
</script>

并将我的小部件代码保存在本地网络服务器中,如下所示:

scripts/
   myWidget/
     widgetExample.js
   ...
test.html

其中widgetExample.js包含我的小部件类代码,而test.html是我的测试页面。我收到的错误消息是:“未捕获的异常:无法加载跨域资源:myWidget.widgetExample ...”。我不确定是否必须在本地加载 dojo 包?我真的很喜欢将 dojo 库包按原样分开或从 AOL 加载,并且只将我自己的代码放在本地路径中。我试图用谷歌搜索不同的域加载、baseScriptUrl 和 moduleMapping?还是想不通。感谢您提供任何详细说明(如果有)。

4

1 回答 1

3

这可能会有所帮助:http ://dojotoolkit.org/forum/dojo-core-dojo-0-9/dojo-core-support/xdomain-usage-dojo-loading-not-detecting-local-modules

总结是:您需要一个 djConfig 项来注册您希望成为本地的 modulePaths,并指定一个 baseUrl 以“欺骗”Dojo,使其认为它知道这些路径在主机之间的相对位置。

djConfig = { modulePaths: { "mine":"/js/mine" };

然后你可以 dojo.require("mine.Thing") 从 /js/mine/Thing.js

问候,彼得·希金斯

于 2008-12-27T13:14:44.173 回答