我有一个用ASP Web API实现的后端,在angularjs中,我已经为crud注入了restangular。所以,在angularjs控制器中我有:
gestionale.controller('mainController', function ($scope, $http, Restangular) {
var basePersonale = Restangular.all('api/Personale');
basePersonale.getList().then(function (personale) {
$scope.myData = personale;
});
....
....
}
在控制器中的某个时刻,我需要发出PUT请求:
var person = $scope.myData[0];
person.put();
变量" person"值得正确,但执行时我在Firefox调试器中看到的put方法:
Request method: PUT
Request URL: http://127.0.0.1:49375/api/Personale
Status Code: 405 Method not allowed
并且要求的参数是:{" Id":1," Nome":" Mat"}并且是正确的。
实际上不允许使用该方法,因为在web api中,put方法响应此url,例如:
// PUT api / Personale / 5
为什么PUT方法的请求网址不正确?
答案 0 :(得分:3)
我遇到了完全相同的问题。我意识到我没有#id;'在我的模型中的字段。我只是确保在我的实例中设置一个id(来自mongodb _id),现在put路径是正确的。在您的情况下,您似乎有一个Id字段,应该转换为小写。
答案 1 :(得分:1)
如果您使用的是MongoDB,则需要告诉Restangular它所期望的id字段实际上是_id。
这可以像这样在全球范围内完成:
RestangularProvider.setRestangularFields({
id: "_id"
});