簡體   English   中英

帶有restangular的Angularjs:錯誤的PUT url

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM