【发布时间】:2015-06-29 20:24:07
【问题描述】:
一个非常简单的例子。我有一个 RESTful api,我通过以下方式设置我的资源。
app.factory('apiFactory' , ['$resource', 'GLOBALS',
function($resource, GLOBALS){
return {
Discounts: $resource(GLOBALS.apiPath + 'discounts/:id', {id:'@id'}, {update:{method: 'PUT'}})
}
}
])
然后我像这样在控制器中调用它
var discountResponse = apiFactory.Discounts.save($scope.discount);
在我将 '/:id' 添加到我的 URL 之前,一切正常。我这样做是为了让我的删除方法传递 id。像这样“折扣/6”。
我遇到的问题是,只要我添加占位符,我的 save() 方法就会发送 GET 而不是 POST。
Request URL:http://local:8089/api/discounts
Request Method:GET
Status Code:200 OK
如果我删除占位符,我会得到
Request URL:http://local:8089/api/discounts
Request Method:POST
Status Code:200 OK
一切正常,接受删除请求,现在不映射占位符,因为它不再存在。
我完全不知道为什么。我对 $resource 很陌生,所以我很确定我不理解某些东西。
【问题讨论】:
-
这里真的很绝望,我开始认为我发现了一个错误。非常感谢任何帮助。
标签: angularjs api rest crud ngresource