我引用了示例here。
这是我在Dojo中的代码:
dojoConfig = {parseOnLoad: true};
console.log('loading...'); // shows up in console
require(['dojo/_base/xhr']), function(xhr){
xhr.get({
url: "js/data.json",
handleAs: "json",
load: function(data){
console.log('about to load...'); // does not show in console
console.log(data); // does not show in console
},
error: function(error){
console.log("Error: " + error.message);
}
});
}
我相信这很简单。这可能有什么问题?模块dojo/_base/xhr
是否未加载?
编辑:控制台中没有错误。
编辑2:实际上,模块路径不正确。我修好了,现在我遇到了两个错误:
GET http://localhost:81/dojo_assignment/dojo/_base/xhr 404 (Not Found)
Uncaught Error: xhrFailed
答案 0 :(得分:1)
您输入错误,在模块阵列后删除括号)
。
例如:
require(['dojo/_base/xhr'], function(xhr) {
// ...
});
这应该正常工作,正如您在此JSFiddle中看到的那样(由于JSON文件不存在而导致错误,因为该模块不存在)。
注意:如果您尝试读取静态本地资源,则更好的方法如下:
require(["dojo/text!js/data.json", "dojo/json"], function(myData, json) {
var myJSON = json.parse(myData);
});
注意:在加载Dojo AMD加载程序(加载dojoConfig
的脚本)之后配置dojo.js
将不起作用。您需要在加载脚本之前对其进行初始化,例如:
<script type="text/javascript">
dojoConfig = { parseOnLoad: true };
</script>
<script type="text/javascript" src="my/dojo.js"></script>
<script type="text/javascript" src="myApplication.js"></script>