首页 > 解决方案 > 带有 [HTTPPost] 的 .Net Core 3.1 API 操作方法返回 405 且响应头不正确允许

问题描述

我四处寻找,找不到解决问题的方法。我有以下操作方法:

PostAction 方法与 [Route( 带有 [Route("api/Deployments")]客户端发布请求 的 PostAction 方法 客户发帖请求

为什么 Response Header Allow 确实有 POST?

检查

太感谢了!

标签: c#.net-core

解决方案


您正在遇到 CORS 问题。您需要允许来自不同域的 AJAX 请求。例如:

public void ConfigureServices(IServiceCollection services)
{
  services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
  {
    builder.AllowAnyOrigin()
           .AllowAnyMethod()
           .AllowAnyHeader();
  }));

  // ...
}

然后根据需要将此策略应用于控制器或操作:

[EnableCors("MyPolicy")]

有关更多详细信息和示例,请参阅如何在 ASP.NET Corehttps://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-3.1中启用 CORS。

通常,作为一种安全措施,允许来自所有域 (*) 的请求并不是一个好的做法。


推荐阅读