3

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'']}>"

我做错了什么?

更新: 想通了,如果我在调用时发送参数,则 POST 有效make_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没有发送参数?

4

1 回答 1

2

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

于 2013-05-28T12:20:40.627 回答