使用AngularJS时不允许获取方法删除

时间:2017-12-30 14:23:15

标签: asp.net angularjs http http-delete

我很乐意得到你的帮助。我正在使用AngularJS版本1.6.5并尝试使用http删除方法。在服务器端我使用的是asp.net MVC5 Web API。 当我试图删除一条记录时,我收到错误405(方法不允许)。

这是我的AngularJS代码:

$scope.Delete = function (CustomerNumber) {
    $http.defaults.headers["delete"] = {
        'Content-Type': 'application/json,charset=utf-8'
    };
    $http({
        method: "DELETE",
        url: "/Api/Customer/" + CustomerNumber
    }).then(function successCallback(response) {
        $scope.Customers = response.data;
        $scope.addCustomer.$setPristine();
        $scope.addCustomer.$setUntouched();
        $scope.Customer = {};
        $scope.error = "";
    }, function errorCallback(response) {
        $scope.error = "Error on delete customer (" + response.status + ") - " + response.statusText;
    });
};

这是我的asp.net代码:

public List<Customer> Delete(string CustomerNumber)
    {
        DataLayer dal = new DataLayer();
        CustomerViewModel cvm = new CustomerViewModel();

        Customer cust = (from x in dal.Customers where x.CustomerNumber == CustomerNumber select x).ToList<Customer>()[1];
        dal.Customers.Remove(cust);
        dal.SaveChanges();

        cvm.customers = dal.Customers.ToList<Customer>();

        return cvm.customers;
    }

我尝试了很多方法,但没有一种方法奏效。我想得到你的帮助。 谢谢。

1 个答案:

答案 0 :(得分:0)

使用JSON.stringify

$http({
        method: "DELETE",
        url: "/Api/Customer/" + JSON.stringify(CustomerNumber)
})