.net core3.1设置跨域及注意事项

本文介绍使用.NET Core 3.1开发项目时如何正确配置跨域访问。重点在于Startup类中跨域服务的设置,并强调了中间件顺序的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近用.net core3.1开发项目,其中在设置跨域的的时候,发现有个小坑,如果一不注意,可能需要花费很多时间来解决。

1、Startup文件设置跨域

public class Startup
    {
        readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";

        public void ConfigureServices(IServiceCollection services)
        {
            //*设置允许所有来源跨域          
            //services.AddCors(options =>
            //{
            //    options.AddPolicy(name: MyAllowSpecificOrigins,
            //    builder =>
            //    {
            //        builder.AllowAnyOrigin()
            //        .AllowAnyHeader()
            //        .AllowAnyMethod()
            //        .AllowCredentials();
            //    });
            //});

            //*设置允许跨域的来源          
            services.AddCors(options =>
            {
                options.AddPolicy(name: MyAllowSpecificOrigins,
                builder =>
                {
                    builder.WithOrigins("http://192.168.2.186:8081", "http://localhost:3000")
                    .AllowAnyHeader()
                    .AllowAnyMethod()
                    .AllowCredentials();
                });
            });

            services.AddControllers();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseRouting();

            //添加 UseCors 添加 CORS 中间件 begin
            app.UseCors(MyAllowSpecificOrigins);
            //添加 UseCors 添加 CORS 中间件 end            

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }

2、注意事项

根据官网文档说明,必须按照如下的中间件顺序:

app.UseRouting() 

app.UseCors()   

app.UseAuthorization()

官网对此进行说明

官网中间件顺序

官网相关材料

启用跨域请求:https://docs.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-5.0

中间件顺序:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-5.0#middleware-order

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值