猿问

我不断地得到“Unaught SyntaxError:意外令牌o”

我不断地得到“Unaught SyntaxError:意外令牌o”

我正在努力学习html/css/javascript,所以我正在为自己编写一个教学项目。

其想法是在JSON文件中包含一些词汇表,然后将其加载到表中。我成功地加载了该文件并打印出它的一个值,之后我开始编写代码将这些值加载到表中。

在这样做之后,我开始得到一个错误,所以我删除了我编写的所有代码,只剩下一行(与以前相同的行).只有错误仍然存在。

错误如下:

Uncaught SyntaxError: Unexpected token o(anonymous function)script.js:10jQuery.Callbacks.firejquery-1.7.js:
1064jQuery.Callbacks.self.fireWithjquery-1.7.js:1182donejquery-1.7.js:7454jQuery.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文件时,会得到错误:“gethttp://./wokab.json404(没有找到)“所以我知道它正在加载它(或者至少尝试加载)。


九州编程
浏览 691回答 3
3回答

qq_花开花谢_0

看起来jQuery对数据类型进行了猜测。它执行JSON解析,即使您没有调用getJSON()-然后当您试图调用对象上的JSON.parse()时,就会得到错误。进一步的解释可在Aditya Mittal的答复.

慕码人8056858

这个问题很简单jQuery.get('wokab.json', function(data) {     var glacier = JSON.parse(data);});你要解析它两次。get使用dataType='json',所以数据是已经以JSON格式。使用$.ajax({ dataType: 'json' ...具体设置返回的数据类型!

犯罪嫌疑人X

基本上,如果响应头是text/html,则需要解析,如果响应头是application/json,则已经为您解析了响应头。从jQuery成功处理程序解析的数据用于text/html响应:var parsed = JSON.parse(data);为应用程序/json响应分析jQuery成功处理程序中的数据:var parsed = data;
随时随地看视频慕课网APP
我要回答