我不断收到此错误SyntaxError:JSON.parse:JSON数据第1行第2列的意外字符

时间:2017-03-10 09:03:36

标签: javascript jquery html css json

这个让我生病了。因为我无法找到我错的地方。我会的 感谢您的任何帮助或提示。下面是我的javascript代码。到目前为止服务器端还不错,但在客户端显示实际评论是问题所在。请帮帮我。

$(document).ready(function () {
    // process the form
    $('form.comments_form').each(function () {
        var form_to_submit = $(this);
        form_to_submit.submit(function (event) {
            event.preventDefault();
            var posta_id = form_to_submit.find("input[type=hidden].UNIQUE_ID").val();
            var tetxarea1 = form_to_submit.find("textarea.target").val();

            $.ajax({
                type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
                url: 'http://localhost/Forepost/php/real_time_comment.php', // the url where we want to POST
                data: {
                    posta_id: posta_id,
                    tetxarea1: tetxarea1
                }, // our data object
                dataType: 'json', // what type of data do we expect back from the server
                success: (function (response) {
                    display_the_comment(jQuery.parseJSON(response));
                    console.log(response);
                }),
                error: function () {
                    alert("oops something went wrong");
                    // oops something went wrong
                }
            });

            //FUNCTION TO DISPLAY COMMENT FROM DATABASE
            function display_the_comment(response) {
                var comment_string = " ";
                comment_string += "<li class='indiv_cmnts'>";
                comment_string += "<span class='user_fname2'>'" + response.f_name + "'</span>";
                comment_string += "<div class='my_msg'>'" + esponse.my_comment + "'</div>";
                comment_string += "<img class='user_proff' src='" + response.profile_img + "'/>";
                comment_string += "<span class='time_cmnts'>'" + response.my_comment_date + "'</span>";
                //comment_string += "<span class='fa_reply'><i class='fa fa-reply' aria-hidden='true'></i> reply</span>";
                comment_string += "</li>";

                $("ul.comenting2").prepend(comment_string);
            }
            //FUNCTION TO DISPLAY COMMENT FROM DATABASE
        });
    });
});

我正在尝试将该列表显示为无序的lis与班级&#34; comenting2&#34;

3 个答案:

答案 0 :(得分:0)

更改您的代码  $("ul.comenting2").prepend(comment_string);
至   $("ul.comenting2").prepend($(comment_string));

答案 1 :(得分:0)

是。为了更容易理解问题。我相信如果您还提供了JSON响应的示例,那将会很棒。它通常是由糟糕的JSON格式引起的。

好。得到了您的示例JSON响应。 尝试将您的代码更改为:

$.ajax({
            type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
            url: 'http://localhost/Forepost/php/real_time_comment.php', // the url where we want to POST
            data: {
                posta_id: posta_id,
                tetxarea1: tetxarea1
            }, // our data object
            dataType: 'json', // what type of data do we expect back from the server
            success: (function (response) {
                display_the_comment(eval('('+response+')'));
                console.log(response);
            }),
            error: function () {
                alert("oops something went wrong");
                // oops something went wrong
            }
        });

        //FUNCTION TO DISPLAY COMMENT FROM DATABASE
        function display_the_comment(response) {
            var comment_string = " ";
            comment_string += "<li class='indiv_cmnts'>";
            comment_string += "<span class='user_fname2'>&lsquo;" + response.f_name + "&rsquo;</span>";
            comment_string += "<div class='my_msg'>&lsquo;" + esponse.my_comment + "&rsquo;</div>";
            comment_string += "<img class='user_proff' src='" + response.profile_img + "'/>";
            comment_string += "<span class='time_cmnts'>&lsquo;" + response.my_comment_date + "&rsquo;</span>";
            //comment_string += "<span class='fa_reply'><i class='fa fa-reply' aria-hidden='true'></i> reply</span>";
            comment_string += "</li>";

            $("ul.comenting2").prepend(comment_string);
        }

请注意ajax成功和功能的变化display_the_comment(response)

答案 2 :(得分:0)

您的响应值已经是一个对象,因为jquery会自动解析它(您将json作为数据类型)。你正在尝试json解析一个对象,当然这个对象有非法字符。