0

我与 ajax 有这种联系,我在公式结果中打印,在 bash 中的 python 中,我从选择中得到结果,如下所示:

 [{"pk": 1, "model": "pagoproveedores.test", "fields": {"just_a_test": "google"}}]

问题是,当我想在模板中显示它时,它会向我发送服务器响应:未定义。看起来我没有从视图中得到响应,我知道我有我需要的数据。

视图.py

def ajax(request):
    print 'inside ajax'
    if request.POST.has_key('client_response'):
        print 'inside if'
        x = request.POST['client_response']
        y = test.objects.filter(just_a_test=x)
        formulario = serializers.serialize('json', y)
        return HttpResponse(formulario, mimetype="application/json")
    else:
        return render_to_response('ajaxexample.html', context_instance=RequestContext(request))

ajax.html

$(document).ready(function () {
    $("#button").click(function () {
        var input_string = $("#forminput").val();
        $.ajax({
            url: "/ajaxexample_json",
            type: "POST",
            dataType: "json",
            data: {
                client_response: input_string,
                csrfmiddlewaretoken: '{{ csrf_token }}'
            },
            success: function (json) {
                $('#result').append('Server Response: ' + json.server_response);
            },
             error: function (xhr, errmsg, err) {
                alert(xhr.status + ": " + xhr.responseText);
            }
        });
        return false;
    });
});
4

2 回答 2

0

我使用此代码和相同的视图修复它,;)

$(document).ready(function () {
        $("#button").click(function () {
         var input_string = $("#forminput").val();
        $.ajax({
            url: "/ajaxexample_json",
            type: "POST",
            dataType: "json",
            data: {
                client_response: input_string,
                csrfmiddlewaretoken: '{{ csrf_token }}'
            },

                 success: function (json) {
                var jsonResponse = eval(json);
                $.each(jsonResponse, function(index, element){
                        alert(JSON.stringify(jsonResponse));
                     $('#resultTables').append('<tr><td  align="center">'+jsonResponse[0]["pk"]+'</td> <td align="center">'+jsonResponse[0]["fields"]["nombre_miembro_1"]+'</td> <td align="center"></td></tr>');

            }); ;
                 },
             error: function (xhr, errmsg, err) {
                alert(xhr.status + ": " + xhr.responseText);
                }
           });
            return false;
        });
    });
于 2013-09-26T18:05:13.507 回答
0

反而

return HttpResponse(formulario, mimetype="application/json")

return HttpResponse(formulario, content_type="application/json")
于 2013-09-25T20:55:53.380 回答