我正在将我的 asp.net web api 迁移到 asp.net core。 Cors 迁移

Posted

技术标签:

【中文标题】我正在将我的 asp.net web api 迁移到 asp.net core。 Cors 迁移【英文标题】:I am migrating my asp.net web api to asp.net core. Cors migration 【发布时间】:2017-03-28 23:24:47 【问题描述】:

在我的 asp.net 项目中,我已经像这样在 webapiconfig 文件中定义了 cors

 public static class WebApiConfig
    
        public static void Register(HttpConfiguration config)
        
            // New code
            var cors = new EnableCorsAttribute("*", "*", "*", "DataServiceVersion, MaxDataServiceVersion")  SupportsCredentials = true ;
            config.EnableCors(cors);

现在我想将它迁移到 asp.net 核心。如何做呢?请帮忙。

【问题讨论】:

【参考方案1】:

    添加 CORS 服务:

    public void ConfigureServices(IServiceCollection services)
    
        services.AddCors(options => options.AddPolicy("AllowAll", builder =>
        
            builder
                .AllowAnyHeader()
                .AllowAnyMethod()
                .AllowAnyOrigin()
                .AllowCredentials()
                .WithExposedHeaders("DataServiceVersion", "MaxDataServiceVersion");
        ));
    
    

    使用 CORS 中间件:

    public void Configure(IApplicationBuilder app)
    
        app.UseCors("AllowAll");
     
    

【讨论】:

仍然出现错误 => 请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'localhost:5004' 不允许访问。响应的 HTTP 状态代码为 500。 @SagarChaudhary 是否在UseMvc 方法app.UseCors("AllowAll").UseMvc(); 之前调用了UseCors 扩展方法? 是 app.UseIdentity(); app.UseCors("AllowAll"); app.UseMvc();

以上是关于我正在将我的 asp.net web api 迁移到 asp.net core。 Cors 迁移的主要内容,如果未能解决你的问题,请参考以下文章