【问题标题】:ng-resource url parameter does not workng-resource url 参数不起作用
【发布时间】:2013-08-29 05:21:08
【问题描述】:

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

【问题讨论】:

  • 如果你硬编码并尝试update({cartId:1})会发生什么?
  • @Chandermani,一模一样

标签: angularjs angular-resource


【解决方案1】:

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

我试图设置 put 这样的标头:

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

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

改为设置帖子标题,它起作用了。

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

【讨论】:

    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2023-03-08
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多