参照:(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);