我正在进行Web API调用,但我收到此错误:
405不允许的方法
所请求的资源不支持http 方法' GET'。
这是电话:
var config = {
url: rootWebApiUrl + '/api/containerMove/allowMultipleBoxesPerMove',
method: 'GET'
};
$http(config)
.then(function (response) {
// code here
}, function (response) {
// code here
});
如果我将HttpGet属性添加到Web API方法,它可以工作:
[HttpGet]
[Route("api/containerMove/allowMultipleBoxesPerMove")]
public bool AllowMultipleBoxesPerMove()
我不明白的是,我在同一个Web API控制器上进行的其他调用不需要HttpGet
。这是一个没有HttpGet
属性的作品:
var config = {
url: rootWebApiUrl + '/api/containerMove/getBatchRefreshInterval',
method: 'GET'
};
$http(config)
Web API方法:
[Route("api/containerMove/getBatchRefreshInterval")]
public int GetBatchRefreshInterval()
那么为什么我需要在一个Web API方法上使用HttpGet
而不在另一个上?那些调用和API方法几乎相同。
答案 0 :(得分:5)
Bob,Web API有一个约定优于配置的范例,因此,在这种情况下,名称以Get开头的所有操作都将与HTTP Get相关联,这就是 get 的原因 BatchRefreshInterval不需要属性[HttpGet]