$ 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
答案 0 :(得分:0)
最后,这是由于我在发出请求之前设置的请求标头。
我试图像这样设置put
标题:
$http.defaults.headers.put['X-CSRFToken'] = $cookies.csrftoken;
这是导致请求网址格式不正确的原因。
将其更改为设置帖子标题,然后就可以了。
$http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken;