netcore3.0框架已集成了Microsoft.AspNetCore.Mvc.Cors包,因此不需要单独引用。
在ConfigureServices中添加Cors策略服务
services.AddCors(options => { options.AddPolicy("AllowAllOrigins", builder => builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials()); });
在Configure中添加到中间件中
app.UseCors("AllowAllOrigins");
【注:策略名可以任意自定义,但是前后必须对应,当然可以设置多个策略;注意中间件放置的位置,在app.UseRouting()和app.UseEndPoints()之间】
》》》你以为这样就结束了吗?运行起来发现报错了:
原因是新版的Cors中间件已经阻止使用允许任意Origin,也就是说即使你配置了AllowAllOrigin()也不会生效。解决办法是使用WithOrigins进行设置:
【注:URL地址最后不能添加'/',如果以'/'终止,比较将返回false并且不返回任何标头】
builder.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(new []{"http://localhost:5000"});