我使用 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 请求?
答案 0 :(得分:0)
我认为错误出现在“{{json_data}}”
var msg_json = jQuery.parseJSON("{{json_data}}");
你应该这样做
var msg_json = jQuery.parseJSON(response.msg);