Javascript 无法读取.json文件
我引用了这个例子 以下是我在Dojo中的代码: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
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)代码>