远程服务器返回错误:(405) Method Not Allowed
Posted
技术标签:
【中文标题】远程服务器返回错误:(405) Method Not Allowed【英文标题】:The remote server returned an error: (405) Method Not Allowed 【发布时间】:2014-08-22 15:23:38 【问题描述】:我试图研究这个问题,但失败了,因此我在这里问这个问题。我有一个调用 Web API 的 MVC 应用程序。其中一种方法返回 405 错误,我不知道为什么,尤其是同一控制器中的所有其他方法都可以正常工作。
这就是我从 MVC 端调用此方法的方式:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Format("0/api/Account/ArchiveAddress?addressId=1", uri, addressId));
request.Method = "Get";
try
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
catch (Exception e)
return RedirectToAction("Error", "Error", new error = e.Message );
其中 uri 是一个字符串:
http://localhost:52599
并且addressId是一个int
我在 Web API 端的方法是这样的:
[Route("ArchiveAddress")]
public IHttpActionResult ArchiveUserAddress(int addressId)
var address = _addressRepo.Find(addressId);
...
正如我所说,我以完全相同的方式在 API 上调用许多不同的方法,它们都可以正常工作。只是这个不想表现。可能是什么原因造成的?
【问题讨论】:
【参考方案1】:我认为您需要使用 [HttpGet]
属性来装饰您的操作方法 (ArchiveUserAddress
),或者将其命名为以 Get...
开头的名称,例如GetArchiveUserAddress
。就目前而言,它会匹配 POST
方法,这意味着没有 getter,因此您会遇到错误。
【讨论】:
以上是关于远程服务器返回错误:(405) Method Not Allowed的主要内容,如果未能解决你的问题,请参考以下文章
为啥 warp 会为输入错误的参数返回 HTTP 405 Method Not Allowed?
对于 Restful Web 服务,PUT 和 POST 获得 405 Method Not Allowed 错误
ApacheIISNginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
jQuery ajax GET 返回 405 Method Not Allowed