2016-04-11 3 views
3

私はJsonResponseとHttpResponse(json.dumpsと一緒に)を試しましたが、ajaxが成功に戻っても返されたjsonは$ .parseJSON(returned_json)で解析できません。Djangoビューはajaxの成功でjsonを返すことはできませんか?

ターミナルにjson.dumpsの値を出力し、その値を変数にコピーして$ parseJSONに渡して解析すると問題が解決されないことが確かです($ parseJSON(returned_json))。それ。

私は、最も単純なJSONを渡そうとしましたが、それはまた、その例として、私は以下を示すのです失敗:views.py

で AJAX処理している私の見解では
from django.http import JsonResponse 

:私は

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

をAjaxのファイル:代わりにJsonResponseの

$.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を使用している場合h HttpResponseも同じことが起こっています。 上記から、json.dumpsがjson形式で正常に変換されているにもかかわらず、JsonResponseとHttpResponseがjson形式でデータを返さないと結論付けることができます(これをコピーしてajax変数に貼り付けます)。助けてください。

+0

私もそれを試みましたが、それは役に立たなかったのです。 dataType: "json"は返される型を定義し、明示的に($ .parseJSON()を使用して)解析する場合は、それをスキップできます – Sid

答えて

2

parseJSONは不要です。

あなただけの辞書で作業しているので、あなたが例えば

javascriptの

内の他の辞書と同じように、あなたはそれにアクセスすることができます。 HttpResponseとJSONダンプで

alert(ret_json.stat); 
+2

両方のソリューションが機能しました! – Sid

1

は、あなたがビューから送信されたデータを持っています。この

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のようにJSで応答データを取得することができます。

+1

両方のソリューションが機能しました! – Sid