我正在尝试使用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
答案 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})
}
});