asp.net core 跨域配置不起作用的原因

1、中间件配置跨域的顺序不对

中间件顺序配置对了基本上就能解决大部分问题中间件顺序配置对了基本上就能解决大部分问题

附上官网简单的启用跨域的代码

csharp 复制代码
var  MyAllowSpecificOrigins = "_myAllowSpecificOrigins";

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddCors(options =>
{
    options.AddPolicy(name: MyAllowSpecificOrigins,
                      policy  =>
                      {
                          policy.WithOrigins("http://example.com",
                                              "http://www.contoso.com");
                      });
});

// services.AddResponseCaching();

builder.Services.AddControllers();

var app = builder.Build();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();

app.UseCors(MyAllowSpecificOrigins);

app.UseAuthorization();

app.MapControllers();

app.Run();

2、中间件启用的跨域同时又用了属性启用跨域

自己碰到的问题,复制官网的demo测试很多遍还是不能跨域,最后发现问题出在基类控制器启用了跨域,但是策略名和中间件启用跨域的策略名的不一致,导致跨域没用...

csharp 复制代码
[EnableCors("any")] //删除这行即可或者策略名改成和中间件一样 _myAllowSpecificOrigins
[Route("api/[controller]/[action]")]
[Authorize]
[ApiController]
public class BaseApiController : ControllerBase
{

}
相关推荐
用户962377954483 分钟前
原理分析 | Valve —— Tomcat 特有内存马
后端
未秃头的程序猿4 分钟前
🚀 从“单机崩盘”到“集群稳如狗”:Redis 高可用避坑指南(保姆级实战)
redis·后端·面试
掘金者阿豪4 分钟前
AI 能写代码后,程序员正在被重新定义:我从一个真实故事里看到了行业未来
后端
IVAN不想说话7 分钟前
Harness Engineering 是什么:从提示词工程、上下文工程到驾驭工程的技术解读
后端
米小虾9 分钟前
深入理解 MCP 协议:AI Agent 工具生态的"USB-C"标准
后端
阿汤猫13 分钟前
LM Studio 开机自启永不掉线方案
后端
涡能增压发动积15 分钟前
10 分钟带你快速上手 CluadeCode
人工智能·后端
泰式大师27 分钟前
7.5 万行 Rust 的 Spec 工程实践:用大模型写 Rust 时,如何把「教程味」挡在仓库外
后端
若水不如远方29 分钟前
一文讲透单点登录原理(SSO):从同域共享到跨域票据
java·后端