通过jquery ajax返回的JSON数据上的意外令牌u

Unexpected token u on my JSON data returned through jquery ajax

本文关键字:意外 令牌 数据 JSON jquery ajax 返回 通过      更新时间:2023-09-26

我正在尝试显示返回给我的数据

console.log(数据)显示:

{"Data":[[true,true,false],null]}

这些数据最终是3个复选框的值。

我不知道如何解决为什么我得到

Uncaught SyntaxError: Unexpected token u

我猜u = undefined。我可以,我需要一个POST代替?我已经尝试过不让contentType注释
显然我有DATA回来是$parseJSON(DATA .d)一个问题吗?

$(document).ready(function () {
        jQuery.support.cors = true;
        $.ajax({
            url: '/GetCheckBox/3521',
            type: 'GET',
            dataType: 'json',
            data: {},
            //contentType: "application/json; charset=utf-8",
            success: function (data) {
                //alert(data);
                console.log(data);
                //WriteResponses(data);
                var objdata = $.parseJSON(data.d);
                WriteResponses(objdata);
            },
            error: function (x, y, z) {
                alert(x + ''n' + y + ''n' + z);
            }
        });
        //Displays in a Table
        function WriteResponses(allNews) {
            alert(allNews);
            var strResult = "<table><th>Name</th><th>Student ID</th><th>Gender</th><th>Age</th>";
            $.each(allNews, function (index, news) {
                strResult += "<tr><td>" + news.StormOut + "</td><td> " + news.StormOut + "</td><td>" + news.StormOut + "</td><td>" + news.StormOut + "</td></tr>";
            });
            strResult += "</table>";
            $("#divResult").html(strResult);
        }
    });

如果console.log(data);显示

{"Data":[[true,true,false],null]}

data字符串(见下文可能的原因)。为什么要解析 data.d ?字符串没有属性ddata.d返回undefined, $.parseJSON(undefined)抛出你得到的错误。

$.parseJSON(data)代替。


仅供参考,Ben到目前为止是正确的,设置dataType: json使jQuery自动解析你的JSON。然而,给定console.log输出,您的数据似乎是双编码的。即数据首先转换为JSON,结果再次编码为JSON。

这当然是错的。您应该确保数据只编码一次,然后删除$.parseJSON调用。

您实际上不需要$.parseJSON。jQuery自动将其解析为JSON,因为您指定了JSON作为数据类型(dataType: json,)。

正如您在控制台日志中看到的那样,"Data"的值作为数组返回-实际上,是JavaScript数组,而不是JSON,它将被引号包围,它是JSON字符串。

所以,把这行改成:

var objData = data["Data"];

它应该可以正常工作:)

更多信息参见jQuery文档:http://api.jquery.com/jQuery.getJSON/