在ASP.NET WebAPI中,当使用PUT或DELETE方法时,可能会出现“405 Method Not Allowed”错误。这是因为默认情况下,WebAPI只允许使用GET和POST方法。
要解决此问题,可以通过以下两种方法之一来允许PUT和DELETE方法:
方法1:使用HttpOptions方法 在WebAPI控制器中添加一个HttpOptions方法,该方法用于返回允许的HTTP方法列表。示例代码如下:
public HttpResponseMessage Options()
{
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Headers.Add("Allow", "GET, POST, PUT, DELETE");
return response;
}
方法2:使用EnableCors特性
使用EnableCors特性来允许跨域请求,并允许使用PUT和DELETE方法。首先,在WebAPI项目的App_Start
文件夹中的WebApiConfig.cs
文件中,添加以下代码:
public static void Register(HttpConfiguration config)
{
// 允许跨域请求
config.EnableCors();
// 其他配置代码...
}
然后,在需要允许PUT和DELETE方法的控制器类上添加EnableCors特性。示例代码如下:
[EnableCors(origins: "*", headers: "*", methods: "PUT, DELETE")]
public class MyController : ApiController
{
// 控制器代码...
}
通过使用以上方法之一,您应该能够解决“405 Method Not Allowed”错误,并允许在ASP.NET WebAPI中使用PUT和DELETE方法。