AddCors 在 asp.net 5.0 中不起作用。如何启用它?

Posted

技术标签:

【中文标题】AddCors 在 asp.net 5.0 中不起作用。如何启用它?【英文标题】:AddCors is not working in asp.net 5.0. How do I enable it? 【发布时间】:2021-08-15 03:50:18 【问题描述】:

所以我的问题是我尝试启用 CORS,按照教程进行操作,但仍然无法正常工作。我的 startup.cs 看起来像这样(我包括我尝试启用 CORS 的方法)。任何帮助将不胜感激:

ConfigureServices 方法:

    public void ConfigureServices(IServiceCollection services)
    
        services.AddCors(options=>options.AddDefaultPolicy(builder=>builder.AllowAnyOrigin()));
        services.AddControllers();
        services.Add(new ServiceDescriptor(typeof(ApplicationDbContext), 
            new ApplicationDbContext(Configuration.GetConnectionString("DefaultConnection"))));
    

然后我尝试在 Configure 方法中使用 cors。

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

        app.UseHttpsRedirection();

        app.UseRouting();

        app.UseCors();

        app.UseAuthorization();

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

我使用最新的 .NET 核心版本。

错误具体是: 从源“http://localhost:3000”访问“http://localhost:5000/api/cities”的 XMLHttpRequest 已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”标头请求的资源

提前致谢。

【问题讨论】:

【参考方案1】:

尝试使用此语法并为策略分配名称

    services.AddCors(o => o.AddPolicy("AllowAnyOrigins", builder =>
            
                builder.AllowAnyOrigin()
                       .AllowAnyMethod()
                       .AllowAnyHeader();
            ));

        .......


            app.UseRouting();

            app.UseCors("AllowAnyOrigins");

            app.UseAuthorization();

【讨论】:

以上是关于AddCors 在 asp.net 5.0 中不起作用。如何启用它?的主要内容,如果未能解决你的问题,请参考以下文章

必需属性在 ASP.NET 中不起作用

Asp.net 按钮 onclick 在更新面板中不起作用

为啥我的正则表达式在 ASP.NET 中不起作用

ASP.NET Core 5.0 nlog 实现不起作用

下拉列表在 asp.net 的移动视图中不起作用

动态查询在 asp.net 中不起作用