我不断收到“Uncaught SyntaxError:意外的令牌o”
我正在尝试学习一些html / css / javascript,所以我正在写一个教学项目。
这个想法是将一些包含在json文件中的词汇表加载到表中。 我设法加载文件并打印出其中的一个值,之后我开始编写代码将值加载到表中。
这样做后,我开始出现一个错误,所以我删除了我写的所有代码,只留下一行(与之前工作过的同一行),只有错误仍然存在。
错误如下:
Uncaught SyntaxError: Unexpected token o
(anonymous function)script.js:10
jQuery.Callbacks.firejquery-1.7.js:1064
jQuery.Callbacks.self.fireWithjquery-1.7.js:1182
donejquery-1.7.js:7454
jQuery.ajaxTransport.send.callback
我的JavaScript代码包含在一个单独的文件中,只是这个:
function loadPageIntoDiv(){
document.getElementById("wokabWeeks").style.display = "block";
}
function loadWokab(){
//also tried getJSON which threw the same error
jQuery.get('wokab.json', function(data) {
var glacier = JSON.parse(data);
});
}
而我的JSON文件现在有以下内容:
[
{
"english": "bag",
"kana": "kaban",
"kanji": "K"
},
{
"english": "glasses",
"kana": "megane",
"kanji": "M"
}
]
现在错误报告在第11行,这是var glacier = JSON.parse(data);
线。
当我删除json文件时,我收到错误:“GET http://.../wokab.json 404(Not Found)”,所以我知道它正在加载它(或至少尝试)。
看起来像jQuery对数据类型进行猜测。 即使您不调用getJSON(),它也会执行JSON解析 - 然后当您尝试在对象上调用JSON.parse()时,您会收到错误。
在Aditya Mittal的回答中可以找到进一步的解释。
问题很简单
jQuery.get('wokab.json', function(data) {
var glacier = JSON.parse(data);
});
你解析它两次。 get
使用dataType='json'
,所以数据已经是json格式。 使用$.ajax({ dataType: 'json' ...
来专门设置返回的数据类型!
基本上,如果响应头是text / html,则需要解析,如果响应头是application / json,它已经为您解析。
从jquery成功处理程序解析text / html响应的数据:
var parsed = JSON.parse(data);
从jquery成功处理程序解析application / json响应的数据:
var parsed = data;
链接地址: http://www.djcxy.com/p/39197.html
上一篇: I keep getting "Uncaught SyntaxError: Unexpected token o"