gpt4 book ai didi

c# - 从 asp.net 核心应用程序发出 DELETE 请求时出现 405 错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:31 24 4
gpt4 key购买 nike

我有一个 asp.net 核心 API,我试图从中向另一个 asp.net 核心 API 发出 DELETE 请求。当我调用第一个 API 时,当它对第二个 API 进行删除调用时,我收到 405 错误。我试过这里找到的解决方案; ASP.NET Core with IIS - HTTP Verb Not Allowed ,以及其他几个没有成功的相关解决方案。我也试过 Enabling Cross-Origin Requests (CORS)在我的 Startup.cs 文件中,但是似乎没有任何变化。

这是我的删除端点:

    [HttpDelete("MyDeleteEndpoint")]
public async Task MyDeleteEndpoint([FromRoute] string id)
{
var http = new HttpClient();

var response = await http.DeleteAsync("https://myserver:443/api/mycontroller/{id});

//do more stuff
}

这是我的 web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="false">
<remove name="WebDAVModule" />
</modules>
</system.webServer>
</configuration>

这是我在 Startup.cs 中的 ConfigureServices 和 Configure 方法:

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

services.AddCors(options =>
{
options.AddPolicy("mypolicy",
builder =>
{
builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod();
});
});
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}

app.UseCors("mypolicy");
app.UseHttpsRedirection();
app.UseMvc();
}

关于我可能做错了什么有什么想法吗?

最佳答案

我以前遇到过这个问题。我发现解决它的唯一方法是明确列出 web.config 中允许的方法。

这是 web.config 的摘录。请注意,您可能不需要所有这些设置,但为简洁起见,我将它们保留在此处:

...
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Credentials" value="true" />
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="authorization,content-type" />
</customHeaders>
</httpProtocol>
...

如果没有向允许的方法显式添加 DELETE 请求,该请求甚至在到达我的代码之前就被自动拒绝了。

关于c# - 从 asp.net 核心应用程序发出 DELETE 请求时出现 405 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55736265/

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