从基于Django / python的服务器中的POST请求主体解析JSON对象

时间:2015-07-15 09:28:56

标签: python json django xmlhttprequest

我使用以下函数将JSON格式的数据发送到基于Django的服务器,该服务器存储为数据库中的用户生成的用户密钥。当我尝试使用Django上的python访问服务器端的request.body时,它将打印为字符串[object Object]。我如何处理从服务器端request.body解析json的这一部分。     function completeKeygen(数据)     {         var key_data = {             ' USER_ID':USER_ID,             '键':数据         }         删除数据[' action'];         console.log("向用户发送UBE密钥");         的console.log(key_data);

    var oReq = new XMLHttpRequest();
    oReq.open("POST",CLOUD_SERVER+'add_ube_keys',true);
    oReq.responseType = "json";
    oReq.setRequestHeader("Content-type", "application/json");
    oReq.onload = function(oEvent){
        console.log(oReq.response.success);
    };
    oReq.send(key_data);
}

供参考服务器端代码:

@csrf_exempt
def add_ube_keys(request):
    data = request.POST
    print data.get('user_id')
    return_data = {
        'success':True
    }
    rdata = json.dumps(return_data)
    return HttpResponse(rdata, content_type='application/json')

与可能重复的问题不同,我在Querydict上获得print request.POST对象,返回<QueryDict: {}>。为什么它是空的?

1 个答案:

答案 0 :(得分:0)

request.POST现在只包含表单数据。您必须从request.body解析出JSON。

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.POST