1、Startup内容
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
//配置跨域处理,允许所有来源
services.AddCors(options =>
{
options.AddPolicy("cors", builder =>
{
builder.AllowAnyOrigin() //允许任何来源的主机访问
.AllowAnyMethod()
.AllowAnyHeader();
//.AllowCredentials();//指定处理cookie
});
});
//跨域配置end
services.AddControllers();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
//允许所有跨域,cors是在ConfigureServices方法中配置的跨域策略名称
//注意:UseCors必须放在UseRouting和UseEndpoints之间
app.UseCors("cors");
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
//跨域需添加RequireCors方法,cors是在ConfigureServices方法中配置的跨域策略名称
endpoints.MapControllers().RequireCors("cors");
});
}
}
2、详细说明,ConfigureServices配置
//配置跨域处理,允许所有来源
services.AddCors(options =>
{
options.AddPolicy("cors", builder =>
{
builder.AllowAnyOrigin() //允许任何来源的主机访问
.AllowAnyMethod()
.AllowAnyHeader();
//.AllowCredentials();//指定处理cookie
});
});
3、Configure配置
//允许所有跨域,cors是在ConfigureServices方法中配置的跨域策略名称
//注意:UseCors必须放在UseRouting和UseEndpoints之间
app.UseCors("cors");
//跨域需添加RequireCors方法,cors是在ConfigureServices方法中配置的跨域策略名称
endpoints.MapControllers().RequireCors("cors");
4、注意
(1) UseCors必须放在UseRouting和UseEndpoints之间,特别注意,顺序很重要
(2).net core 2.2 和3.1版本跨域配置是有区别的
使用2.2 版本方法配置,在3.1版本会出现 不允许所有的跨域
6、.net 跨域方法配置官方文档,需要的可以看一下 点击查看