Ich habe sowohl JsonResponse und HttpResponse (zusammen mit json.dumps) versucht, aber obwohl Ajax zum Erfolg zurückkehrt, zurückgegebene JSON kann nicht von $ .parseJSON (returned_json) analysiert werden.Django View kann JSON auf AJAX-Erfolg nicht zurückgeben?
Ich bin sicher, dass das Problem nicht mit Parsen ist ($. ParseJSON (returned_json)) durch json.dumps Wert in Terminal Ausdrucken und Kopieren der Wert in eine Variable und es bis zu $ .parseJSON geben, und es erfolgreich analysiert es.
Ich versuchte einfachste json zu passieren, aber es scheitert auch deren Beispiel zeige ich unter: In views.py
from django.http import JsonResponse
Meiner Ansicht, die Ajax ist der Umgang:
return JsonResponse({"stat":"Success"})
In meinem Ajax-Datei:
$.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
},
Anstelle von JsonResponse, wenn ich json.dumps mit wit verwenden h HttpResponse dasselbe passiert. Von oben kann ich nur schließen, dass JsonResponse und HttpResponse Daten im JSON-Format nicht zurückgibt, obwohl json.dumps erfolgreich im JSON-Format konvertiert (wie ich kopiert und eingefügt in AJAX-Variable). Bitte helfen Sie.
Ich habe das auch versucht, aber es war nutzlos. dataType: "json" definiert den zurückgegebenen Typ und wenn wir ihn explizit analysieren (mit $ .parseJSON()), können wir ihn überspringen – Sid