参照:(7条消息) .net6使用最小api(8)— 开启跨域模式,通过扩展服务实现_hailang2ll的博客-CSDN博客

步骤:

一、在appsetting.json里添加配置文件

//配置文件如上:
"Cors": {
"EnableAllIPs": false, //是否应用所有的IP
"PolicyName": "CorsIpAccess", //策略名称
"IPs": "http://127.0.0.1:2364,http://localhost:2364"//需要访问的域名
},

二、创建对应的配置类

 public class CorsOptions
    {
        public bool EnableAllIPs { get; set; }//是否应用所有的IP
        public string PolicyName { get; set; }//策略名称
        public string IPs { get; set; }
    }

三、在program.cs里做相应配置

var builder = WebApplication.CreateBuilder(args);
//先将对应的配置绑定到对象里
CorsOptions corsOptions = new CorsOptions();
builder.Configuration.Bind("CorsOptions", corsOptions);
//配置跨域 builder.Services.AddCors(c
=> { if (!corsOptions.EnableAllIPs) { c.AddPolicy(corsOptions.PolicyName, policy => { policy .WithOrigins(corsOptions.IPs.Split(',')) .AllowAnyHeader()//Ensures that the policy allows any header. .AllowAnyMethod(); }); } else { //允许任意跨域请求 c.AddPolicy(corsOptions.PolicyName, policy => { policy .SetIsOriginAllowed((host) => true) .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); }); } });

四、将配置的跨域策略添加到请求处理管道

var app = builder.Build();
// CORS跨域,这里的PolicyName对应就是配置文件里的策略名称
 app.UseCors(corsOptions.PolicyName);