Uncaught (in promise) SyntaxError: Unexpected end of JSON input for JSON data processing 从 Django 后端收到

时间:2021-06-06 12:19:33

标签: javascript json django

我使用 Django 开发了一个网络应用程序。

我想将 JSON 格式的 sting 数据(msg)发送到前端,然后将后端发送的 JSON 数据处理为字符串,然后在 javascript 中的 if 条件中比较这个字符串。

view.py:

    @csrf_exempt
def content_checklist_name_url(request):
    msg = "Duplicate Entry. This Course Code already exists."
    json_data = {'msg': msg}
    return JsonResponse(json_data)

Javascript:

                       $.ajax({     
        url: '/content_checklist_name_url/',  
        type: 'POST',           
        data: $("#myform").serialize(),           
        cache: false,       
        success: function (data) {        
       
    
            var comment_html = "<div id='myform1'>" + data['log_info'] + "</div>";
            $('#myform1').remove();
            $('#ajax_data').prepend(comment_html);
            $('#myform_input').val('');
        },

    });


            const response = await fetch({% url 'bms:content_checklist_name_url' %});   

            var msg_json = jQuery.parseJSON(response.msg);

...

当我尝试接收和处理后端发送的 JSON 数据时,发生错误:Uncaught (in promise) SyntaxError: Unexpected end of JSON input 在 Function.parse [as parseJSON] ()

当我调试时,我发现这个 URL 的 POST 被发送了两次,而在第二次时,msg 是 none。 所以可能是 JSON 的 none 值导致了这个错误,但为什么它发送了两次 POST 请求?

1 个答案:

答案 0 :(得分:0)

我认为错误出现在“{{json_data}}”

var msg_json = jQuery.parseJSON("{{json_data}}");

你应该这样做

var msg_json = jQuery.parseJSON(response.msg);