[英]Angularjs with restangular: wrong PUT url
我有一個使用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方法的請求URL不正確?
我遇到了完全相同的問題。 我意識到我的模型中沒有'id'字段。 我只是確保在我的實例中設置一個id(來自mongodb _id),現在put路徑是正確的。 在您的情況下,您似乎有一個Id字段,應該轉換為小寫。
如果您使用的是MongoDB,則需要告訴Restangular它所期望的id字段實際上是_id。
這可以像這樣在全球范圍內完成:
RestangularProvider.setRestangularFields({
id: "_id"
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.