0

I'm trying to receive a json object sent from my jquery post call as seen below in the code. I get the "POST OK" callback when the

simplejson.loads(request.POST) 

is commented. But as soon i'm trying do do something with the request I get Internal server error 500. Any ideas or any other ways to handle 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);
                } 
        });
4

1 回答 1

2

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

simplejsonDjango 中也不推荐使用,如果您使用的是 Python 2.6+,您应该只使用 Pythonjson包 ( import json)

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

  data: JSON.stringify(m)
于 2013-05-15T11:56:00.117 回答