在services.js
我有:
return $resource('/item', {name: 'myname'}, {
make_POST: {
method: 'POST',
},
make_GET: {
method: 'GET',
}
});
在views.py
:
@ajax_request
def v_item(request):
if request.method == 'POST':
return {'success': request.POST['name']}
return {'success': request.GET['name']}
当我做make_GET
时,一切都很好。但是,当我make_POST
时,我得到了这个:
"Key 'name' not found in <QueryDict: {u'{}': [u'']}>"
我做错了什么?
更新
想通了,如果我在拨打make_POST
时发送params,那POST就有效:
Item.make_POST({name: 'myname'}, function(response) {
$scope.success_POST = response.success;
});
在views.py
中做了这样的伎俩:
return {'success': json.loads(request.raw_post_data)['name']}
但为什么没有发送$resource
&#39}的参数?
答案 0 :(得分:2)
因为angular会将你的请求序列化为json并将json发送到服务器,而不是表单编码数据