4

JsonResponse と HttpResponse の両方を (json.dumps と共に) 試しましたが、ajax が成功に戻っても、返された json は $.parseJSON(returned_json) で解析できません。

問題は、ターミナルで json.dumps 値を出力し、値を変数にコピーして $.parseJSON に渡すことにより、解析($.parseJSON(returned_json))に問題がないことを確信しており、正常に解析されました。

最も単純なjsonを渡そうとしましたが、以下に示す例でも失敗します:

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
    },

HttpResponse と一緒に json.dumps を使用すると、JsonResponse の代わりに同じことが起こっています。上記から、json.dumpsがjson形式で正常に変換されているにもかかわらず、JsonResponseとHttpResponseがjson形式でデータを返していないと結論付けることができます(これをコピーしてajax変数に貼り付けたため)。助けてください。

4

2 に答える 2

2

parseJSON必要ありません。

辞書を操作しているだけなので、javascript の他の辞書と同じようにアクセスできます。

例えば。

alert(ret_json.stat);
于 2016-04-11T07:48:46.753 に答える
1

HttpResponse と json ダンプを使用すると、次のように 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ビューから送信しているデータがあります。

于 2016-04-11T08:00:48.793 に答える