ng-resource url参数不起作用

时间:2013-08-28 10:13:15

标签: angularjs angular-resource

在通过自定义操作发出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});

但请求网址为:/api/cart/items/,但我期待/api/cart/1/items/。如果我执行.get({cartId: <some_id>})但这似乎不适用于更新,则此方法可以正常工作。

编辑:Angular版本1.1.5

1 个答案:

答案 0 :(得分:0)

最后,这是由于我在发出请求之前设置的请求标头。

我试图像这样设置put标题:

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

这是导致请求网址格式不正确的原因。

将其更改为设置帖子标题,然后就可以了。

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