我与ajax有这个连接,我在公式结果中放了一个打印,在bash的python中我得到了像这样的选择结果:
[{"pk": 1, "model": "pagoproveedores.test", "fields": {"just_a_test": "google"}}]
问题是,当我想在模板中显示它时,它会向我发送服务器响应:未定义。看起来我没有从视图中得到响应,我知道我有我需要的数据。
view.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;
});
});
答案 0 :(得分:0)
相反
return HttpResponse(formulario, mimetype="application/json")
DO
return HttpResponse(formulario, content_type="application/json")
答案 1 :(得分: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;
});
});