Django + AngularJS + ajax POST =奇怪的QueryDict

时间:2013-05-28 12:12:23

标签: django post angularjs

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}的参数?

1 个答案:

答案 0 :(得分:2)

因为angular会将你的请求序列化为json并将json发送到服务器,而不是表单编码数据