我正在进行 Web API 调用,但出现此错误:
405 Method Not Allowed
The requested resource does not support http method '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 Controller 上进行的其他调用不需要 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 方法几乎相同。
最佳答案
Bob,Web API 有一个约定优于配置的范例,因此,在这种情况下,名称以 Get 开头的所有操作都将关联到 HTTP Get,这就是 getBatchRefreshInterval 不需要 [HttpGet] 属性
关于javascript - 一种方法需要 HttpGet 属性,但另一种方法不需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40267718/