Javascript 无法读取.json文件

Javascript 无法读取.json文件,javascript,dojo,Javascript,Dojo,我引用了这个例子 以下是我在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", l

我引用了这个例子

以下是我在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/\u base/xhr
是否未加载

编辑:控制台中没有错误

编辑2:实际上,模块路径不正确。我修复了它,现在出现两个错误:

GET http://localhost:81/dojo_assignment/dojo/_base/xhr 404 (Not Found)
Uncaught Error: xhrFailed 

如果您输入了错误,请在模块阵列后删除括号

例如:

require(['dojo/_base/xhr'], function(xhr) {
    // ...
});
<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>
这应该正常工作,正如您在本文中看到的(它给出了一个错误,因为JSON文件不存在,而不是因为模块不存在)


注意:如果您试图读取静态本地资源,更好的方法是:

require(["dojo/text!js/data.json", "dojo/json"], function(myData, json) {
    var myJSON = json.parse(myData);
});

注意:加载Dojo AMD加载程序(脚本加载
Dojo.js
)后配置
dojoConfig
将无法工作。您需要在加载脚本之前对其进行初始化,例如:

require(['dojo/_base/xhr'], function(xhr) {
    // ...
});
<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>

dojoConfig={parseOnLoad:true};

“模块dojo/\u base/xhr没有加载吗?”我们怎么知道?您可以通过在回调(而不是Ajax回调)中放入
console.log
语句来找到答案。@FelixKling请查看编辑。您想把
控制台.log放在哪里?对不起,我是Dojo新手。例如,在
xhr.get()之前。编辑:但是如果您仍然收到404错误,那么看起来模块并没有实际找到。@FelixKling我在
xhr.get()之前放入
console.log('check')
。它没有显示在控制台中。然后看起来模块的路径仍然错误。由于我不知道文件在您的文件系统中的位置,您必须自己找出正确的路径。我更正了输入错误。但是JSON仍然没有出现。我在
dojo.js
中得到了
SyntaxError{}
。当我展开错误时,它显示了大量指向
dojo.js:15
的元素。不知道我做错了什么。请帮忙!如果出现该错误,请关闭并打开控制台/开发人员工具(F12)。通常情况下,您现在应该在
{}
的位置获得额外的信息。我喜欢您在注释1中的建议,但为此我得到了一个错误:
SyntaxError:JSON.parse:expected property name或'}'http://localhost:81/dojo_assignment/json_to_gridx/js/json_to_gridx.js 第6行
EDIT:JSON数据显示在GET请求中的Firebug中,但错误仍然存在。这意味着您的JSON无效,请尝试在我更正JSON时验证您的JSON文件,它仍然抛出错误:
SyntaxError:JSON.parse:expected property name或'}'var myJSON=JSON.parse(myData)