You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Web API已配置CORS仍拦截POST请求问题求助

问题原因

你当前的CORS策略仅配置了允许的跨域源,没有放行非简单请求的自定义请求头和请求方法:

  • 普通GET请求属于简单请求,无需触发CORS预检,因此可以正常执行
  • 携带Content-Type: application/json的POST请求属于非简单请求,浏览器会自动发送OPTIONS预检请求校验跨域权限,你未配置允许Content-Type请求头,因此预检失败
  • Postman不受浏览器同源策略限制,因此请求可以正常执行

解决方案

修改ConfigureServices方法中的CORS策略配置,添加允许的请求头与请求方法即可:

services.AddCors(options =>
{
    options.AddPolicy(name: MyAllowSpecificOrigins,
                builder =>
                {
                    builder.WithOrigins("http://localhost:8080")
                           // 明确放行需要的请求头,生产环境不建议使用AllowAnyHeader,可缩小权限范围
                           .WithHeaders("Content-Type")
                           // 明确放行需要的请求方法,按需添加GET/POST/PUT/DELETE等
                           .WithMethods("GET", "POST");
                });
});

验证注意事项

你当前的中间件顺序UseRouting→UseCors→UseAuthorization符合ASP.NET Core的要求,无需调整。修改配置后重启后端服务即可生效。

内容的提问来源于stack exchange,提问作者m.tracey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:36:02