Restangular.remove()方法Access-Control-Allow-Methods不允许DELETE

时间:2015-02-06 03:16:20

标签: angularjs restangular

我正在尝试使用Restangular实现DELETE方法,但它一直给出错误Access-Control-Allow-Methods不允许使用方法DELETE。

已经瞪大了很多,但还没有找到解决方案。请求与POST MAN无缝协作

var users = Restangular.all("users", userId);
                   return users.remove()
                .then(function (response) {
                    return response;
                });

通过以上操作,请求方法作为OPTIONS发送,我认为它应该是DELETE

2 个答案:

答案 0 :(得分:0)

我也在做点什么。这是一个解决方案:

您必须更新api web.config文件

<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="OPTIONS,GET,POST,PUT,DELETE" />

ApiController

[HttpDelete]
public string Delete() 
{ 
    return "u call delete"; 
} 

public HttpResponseMessage Options() { 
    var response = new HttpResponseMessage(); 
    response.StatusCode = HttpStatusCode.OK; 
    return response;
}

在Angular中:

home.post().then(function (data) {
    console.log(data);
});

home.remove().then(function (data) {
    console.log(data);
});

Out Put ......

> u call delete

希望这会对你有所帮助:)。

答案 1 :(得分:0)

我将为我的控制器发布我的代码,希望它可以帮到你 我使用此控制器与angularjs和django休息框架。在CategorySerializer中,我返回pk和名称

CategorySerializer:

class CategorySerializer(serializers.HyperlinkedModelSerializer):
    owner = serializers.ReadOnlyField(source='owner.username')
    class Meta:
        model = Category
        fields = ('pk','name', 'owner','created')

在我的cotroller.js文件中,我有以下代码添加类别并删除类别:

appcontroller.controller('Route1Ctrl', function Route1Ctrl($scope,Restangular) {
  $scope.test = 'hello world !!!'
  $scope.name = '' 
  $scope.delete = function(pk) {
     Restangular.one('categories/',pk).remove().then(function() {
       var index = $scope.categories.indexOf(pk);
       if (index > -1) $scope.categories.splice(index, 1);
     });
  };
  Restangular.all('categories/').getList({}).then(function(data) {
   $scope.categories = data;
  });
  $scope.addCategory = function() {
    categories.post({'name':$scope.name})
  }
});