0

カスタム アクションを介して PUT リクエストを行うときに、$resource が url パラメータを正しく渡していません。

これは、リソースを作成する私のサービスです。

.factory('cartItemsService', ['$resource', function($resource) {
    return $resource('/api/cart/:cartId/items/', {format: 'json'}, {
        get: {method: 'GET', isArray: true},
        update: {method: 'PUT', isArray: true},
    });
}])

私のコントローラーでは、このようなアイテムのリストを更新しようとしています。$scope.cart.id存在し、正しいことに注意してください(この場合は 1)

$scope.cartItems = cartItemsService.update({cartId: $scope.cart.id});

ただし、リクエスト URL は:/api/cart/items/ですが、期待してい/api/cart/1/items/ます。これは問題なく機能します.get({cartId: <some_id>})が、更新には機能しないようです。

編集:Angularバージョン1.1.5

4

1 に答える 1

0

結局、これは、リクエストを行う前に設定していたリクエストヘッダーが原因でした。

私はputそのようなヘッダーを設定しようとしていました:

$http.defaults.headers.put['X-CSRFToken'] = $cookies.csrftoken;

これが、リクエスト URL の形式が正しくない原因です。

代わりに投稿ヘッダーを設定するように変更し、機能しました。

$http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken;
于 2013-08-28T12:43:28.403 に答える