Django 视图无法 return json ajax 成功?

Django view doen't able to return json on ajax success?

我已经尝试了 JsonResponse 和 HttpResponse(以及 json.dumps)但是即使 ajax 返回成功,返回的 json 也无法被 $.parseJSON 解析( returned_json).

我确定问题不在于 parsing($.parseJSON(returned_json)) 通过在终端中打印出 json.dumps 值并将该值复制到变量中并将其提供给 $ .parseJSON,它成功解析了它。

我试图通过最简单的 json 但它也失败了,我在下面展示了它的例子: 在views.py

from django.http import JsonResponse

在我看来正在处理 ajax:

return JsonResponse({"stat":"Success"})

在我的 ajax 文件中:

$.ajax({
    url:"feed/get_comments/",
    type: "GET",
    data:{c_id: cid}, //cid is a variable initialized above and not creating any problem
    success: function(ret_json){
        alert("Inside success"); //Running everytime
        var sam_json = '{"stat":"Success"}'; //same as what is given in JsonResponse
        var data = $.parseJSON(ret_json); //for debugging change to sam_json
        alert(data); //with sam_json alerting with dictionary, with ret_json not giving any alert
    },

如果我将 json.dumps 与 HttpResponse 一起使用而不是 JsonResponse,则会发生同样的事情。 从上面我只能得出结论,JsonResponse 和 HttpResponse 没有返回 json 格式的数据,即使 json.dumps 成功转换为 json 格式(因为我复制了这个并粘贴到 ajax 多变的)。请帮忙。

parseJSON 不需要。

由于您只是在使用字典,因此您可以像访问 javascript

中的任何其他字典一样访问它

例如

alert(ret_json.stat);

有了HttpResponse和json dump,你可以像这样在js中获取响应数据

var val = $.ajax({
    url:"feed/get_comments/",
    type: "GET",
    data:{c_id: cid}, //cid is a variable initialized above and not creating any problem
    success: function(ret_json){
        alert("Inside success"); //Running everytime
        var sam_json = '{"stat":"Success"}'; //same as what is given in JsonResponse
        var data = jQuery.parseJSON(val.responseText); //for debugging change to sam_json
        alert(data); //with sam_json alerting with dictionary, with ret_json not giving any alert
     },    

val.responseText 将显示您发送的数据。