无法读取.json文件

时间:2014-01-30 10:04:41

标签: javascript dojo

我引用了示例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 

1 个答案:

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