gpt4 book ai didi

c# - WebAPI 删除 - HTTP/1.1 405 方法不允许

转载 作者:行者123 更新时间:2023-11-30 17:29:26 27 4
gpt4 key购买 nike

我一直在尝试让删除工作正常进行,但似乎无法正常工作!

所有 GET 请求看起来都很好,但如果我尝试使用 delete 动词,我会收到上述错误。

如果我将其设为 GET,则该方法本身是可访问的,但是一旦我添加 [HttpDelete] 属性并尝试设置调用类型,它就会失败。

方法:

[HttpDelete]
public void Delete(int id) {
// delete method.
}

调用:

remove: function(key) {
$.ajax({
url: MyApp.settings.endpoint + 'list/delete/1,
type: "DELETE"
});
}

好像卡在OPTIONS预请求上了?

要求:

(Request-Line)  OPTIONS /api/list/delete/1 HTTP/1.1
Host 192.168.1.139
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-US,en;q=0.5
Accept-Encoding gzip, deflate
Origin null
Access-Control-Request-Method DELETE

响应:

(Status-Line)   HTTP/1.1 405 Method Not Allowed
Cache-Control no-cache
Pragma no-cache
Allow DELETE
Content-Type application/xml; charset=utf-8
Expires -1
Server Microsoft-IIS/7.5
X-AspNet-Version 4.0.30319
Access-Control-Allow-Origin *
Date Mon, 05 May 2014 02:54:38 GMT
Content-Length 96

我已经尝试了几乎所有可以想象的 web.config,它们让您删除了 WebDAV 和 WebDAVModule 并弄乱了 ExtensionlessUrlHandler。

唯一的区别是我也加入了这个以允许跨域。我真的希望它不会这么难。

<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>

最佳答案

看起来您正在使用跨域调用,您是否为您的项目添加了 CORS 支持?

请注意,下面的代码是一把大锤子,您可以有选择地启用每个 Controller 。有关更多信息,请参见以下链接:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

using System.Web.Http;
namespace WebService
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// New code
var cors = new EnableCorsAttribute("www.example.com", "*", "*");
config.EnableCors(cors);

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}

关于c# - WebAPI 删除 - HTTP/1.1 405 方法不允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464153/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com