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

しかし、なぜ$resourceparams ane が送信されないのでしょうか?

4

1 に答える 1

2

これは、Angular がリクエストを json にシリアル化し、json をフォーム エンコード データではなくサーバーに送信するためです。

于 2013-05-28T12:20:40.627 に答える