使用 $http.post 时出现 HTTP 405 无效方法(HTTP 动词)
HTTP 405 invalid method (HTTP verb) when using $http.post
我在使用网络 api 时遇到了一些奇怪的行为。我正在使用属性路由,并在服务器上制作 post 。
控制器:
[Route("names")]
public ResultDTO SaveData(SomeDTO dto)
{
//somecode
...
}
我称之为
$http.post('/api/mycontroller/names', $scope.model.dto).success(function
(data) { ...
它正在工作。但是,如果我重命名我的方法
[Route("names")]
public ResultDTO GetData(SomeDTO dto)
{
//somecode
...
}
它不工作,我收到 HTTP 405 错误无法显示您要查找的页面,因为尝试访问时使用了无效方法(HTTP 动词),
但是,如果我将呼叫从 $http.post 更改为 $http.get
,它会起作用
显然,如果我正在 posting 数据,我不会以 GetSomeMethod 开头命名我的方法,但我很好奇,不应该定义路由
[Route("names")]
与 $http.post 一起工作,无论我实际上如何调用将处理该 post 的方法?更具体地说,如果我将我的方法命名为 GetSomething,为什么 $http.post 不起作用,但如果我将方法名称更改为例如 GotSomething 或 SaveSomething,它会起作用?
尝试添加路由属性
[HttpPost]
然后你可以随意命名你的动作。
Web API 查看 HTTP 方法,然后查找名称以该 HTTP 方法名称开头的操作。例如,对于 GET
请求,Web API 查找以 Get...
开头的操作,例如 GetContact
或 GetAllContacts
。此约定仅适用于 GET
、POST
、PUT
和 DELETE
方法。
查看更多here
$http.post(***) - [HttpPost]
和 $http.get(***) - [HttpGet]
使用适当的动词
我在使用网络 api 时遇到了一些奇怪的行为。我正在使用属性路由,并在服务器上制作 post 。 控制器:
[Route("names")]
public ResultDTO SaveData(SomeDTO dto)
{
//somecode
...
}
我称之为
$http.post('/api/mycontroller/names', $scope.model.dto).success(function
(data) { ...
它正在工作。但是,如果我重命名我的方法
[Route("names")]
public ResultDTO GetData(SomeDTO dto)
{
//somecode
...
}
它不工作,我收到 HTTP 405 错误无法显示您要查找的页面,因为尝试访问时使用了无效方法(HTTP 动词),
但是,如果我将呼叫从 $http.post 更改为 $http.get
,它会起作用显然,如果我正在 posting 数据,我不会以 GetSomeMethod 开头命名我的方法,但我很好奇,不应该定义路由
[Route("names")]
与 $http.post 一起工作,无论我实际上如何调用将处理该 post 的方法?更具体地说,如果我将我的方法命名为 GetSomething,为什么 $http.post 不起作用,但如果我将方法名称更改为例如 GotSomething 或 SaveSomething,它会起作用?
尝试添加路由属性
[HttpPost]
然后你可以随意命名你的动作。
Web API 查看 HTTP 方法,然后查找名称以该 HTTP 方法名称开头的操作。例如,对于 GET
请求,Web API 查找以 Get...
开头的操作,例如 GetContact
或 GetAllContacts
。此约定仅适用于 GET
、POST
、PUT
和 DELETE
方法。
查看更多here
$http.post(***) - [HttpPost]
和 $http.get(***) - [HttpGet]