c# - 带有 [HTTPPost] 的 .Net Core 3.1 API 操作方法返回 405 且响应头不正确允许
问题描述
我四处寻找,找不到解决问题的方法。我有以下操作方法:
带有 [Route("api/Deployments")]客户端发布请求 的 PostAction 方法
为什么 Response Header Allow 确实有 POST?
太感谢了!
解决方案
您正在遇到 CORS 问题。您需要允许来自不同域的 AJAX 请求。例如:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
// ...
}
然后根据需要将此策略应用于控制器或操作:
[EnableCors("MyPolicy")]
有关更多详细信息和示例,请参阅如何在 ASP.NET Core和https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-3.1中启用 CORS。
通常,作为一种安全措施,允许来自所有域 (*) 的请求并不是一个好的做法。
推荐阅读
- iccube - 迁移服务器 - 用户/密码和架构
- ruby-on-rails - Rails Carrierwave 添加更多文件未定义方法“标识符”
- java - JAVA - Cassandra 错误 - 未找到请求操作的编解码器
- python - Django-admin:AdminDateWidget 显示图标两次
- javascript - 使用引导程序缩小列之间的间隙
- unity3d - 统一二维。空引用异常问题
- javascript - 为什么 npm 模块(如 material-ui)会导出 es6 和 es5 文件?
- excel - Excel 图表导出为空白
- android - 与 FileProvider 共享日志文件失败
- javascript - 这是在旧版本节点中避免回调地狱的可接受方法吗?