尝试在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)