我正在尝试将参数发送到Django View,但显示空白。以下是我的Angularjs代码:
$scope.APbaseHttp=function(x){
$scope.unkm='/budareaemp/';
alert("in APBASE");
var dt = $.param({
ap:x
});
var cn = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
}
};
alert("dt Value :"+x);
$http.post($scope.unmk,dt,cn).then(function(response){
$scope.appdata=response.data;
$scope.nm="Success";
});
}
当我发出警报时,值x正在显示HTML的预期值。
这是我的Django代码:
@csrf_exempt
def getEmpAppwise(request):
print("In GET EMP AppWise.....................................................................")
x=QueryDict(request.body)
y=len(request.body)
h=HttpRequest.body
print('-rrrrrrrr :',x,y,h)
#print('oooooooooo',json.loads(x))
print("Get EMp Wisee ",request.POST)
print("Get EMp Wiseeeeee ",request.POST.get('ap'))
ap=request.POST.get('ap')
print("::::::::::I am in Get APP Name :::::::::::::::",ap)
在StackOverflow的帮助下,我尝试了所有可能的方式,但没有成功。
显示如下
<QueryDict:{}> 0
None
当我查看传递的参数时,在Firefox中,它显示为“未传递参数”。
答案 0 :(得分:0)
我不明白您正在使用该代码做什么。
要访问表单编码的POST请求中的参数,请使用request.POST
,这是一个querydict。所以:
print(request.POST)
修改
您在这里做各种奇怪的事情。 AngularJS的$http
服务将自动将data参数中的对象转换为JSON,请参见the docs。您已经包括一个额外的标题,以表明这是表单编码的数据;但事实并非如此。您应该完全删除该cn
对象。
在Django方面,由于它正在接收JSON而不是形式编码的数据,因此您需要获取请求主体并将其反序列化:
data = json.loads(request.body)
ap = data.get('ap')