尝试在django中处理json时出现内部服务器错误

我正在尝试接收从我的jquery post调用发送的json对象,如下面的代码所示。 我得到了“POST OK”回调

simplejson.loads(request.POST) 

被评论。 但是,一旦我尝试做一些事情请求我得到内部服务器错误500.任何想法或任何其他方式来处理json?

views.py

 @csrf_exempt def post_post(request): print 'post_post' if request.method == 'POST': print 'POST' messageData = simplejson.load(request.POST) return HttpResponse(simplejson.dumps("POST OK!")) else: return HttpResponse(simplejson.dumps("POST NOT OK!")) 

projectViewModel.js

  var m = "Hello World"; console.log(m); $.ajax({ url: 'postNewPost/', type: 'POST', dataType: 'json', data: {client_response: JSON.stringify(m)}, success: function(result) { console.log(result); } }); 

这是因为你试图将字典传递给loads()方法。 request.POST是一个带参数的字典。 您可以使用request.raw_post_data获取原始内容。

在Django中也不推荐使用simplejson ,如果你使用的是Python 2.6+,你应该只使用Python json包( import json

同样在你的js代码中你传递了param client_response和json。 在这种情况下,您只需要将request.POST['client_response']传递给loads()方法。 但更好的方法是直接传递json。

  data: JSON.stringify(m)