我使用以下函数将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: {}>
。为什么它是空的?
答案 0 :(得分:0)
request.POST
现在只包含表单数据。您必须从request.body
解析出JSON。
https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.POST