【问题标题】:SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSONSyntaxError:JSON.parse:JSON 的第 1 行第 2 列出现意外字符
【发布时间】:2016-11-19 15:15:35
【问题描述】:

我需要将此 div 附加到另一个 div ,但它给了我这个错误:

语法错误:JSON.parse:第 1 行第 2 列出现意外字符 JSON 数据

这是我的 javascript 代码:

var str = {'message': message,'text': text};
$.ajax({
    type: "POST",
    url: "api/reply",
    data: str,
    dataType: "json",
    cache: false,
    success: function(response)
    {
        var respons = jQuery.parseJSON(response);
        var type = respons.status
        if (type == 'success') {
            $("<div></div>").html(respons.message).appendTo("#messages");
        }
        else
        {
            toastr.error(respons.message)
        }
    }
})

【问题讨论】:

标签: javascript php jquery json ajax


【解决方案1】:

简单的改变

var respons = jQuery.parseJSON(response);

var respons = response;

说明:

如果您的 AJAX 调用配置具有 dataType: json,您将获得一个 JavaScript 对象,因此不再需要使用 JSON.parse()。

【讨论】:

    【解决方案2】:

    这是解析 JSON 的一种 hackish 和非正统方式,但如果您仍想在 AJAX 调用中使用 JSON.parse() 或只是在已解析且不是字符串的 JSON 上使用,您可以在内部使用 JSON.stringify()它:

    var respons = JSON.parse(JSON.stringify(response));
    

    【讨论】:

    • 你是对的。但我认为没有用例。
    • 我正在通过这个语句调试我的错误。 var respons = JSON.parse(JSON.stringify(response));
    【解决方案3】:

    问题是您不是在解析字符串,而是在解析已经解析的对象。

    【讨论】:

      【解决方案4】:

      您的对象中的值似乎未定义。 改变 var str = {'message': message,'text': text};var str = {message: 'message',text: 'text'};

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-02
        • 1970-01-01
        • 2023-03-11
        • 2019-11-12
        • 1970-01-01
        • 1970-01-01
        • 2021-04-02
        • 1970-01-01
        相关资源
        最近更新 更多