我正在将我的 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 迁移的主要内容,如果未能解决你的问题,请参考以下文章

将 ASP.NET Web API 部署到 IIS 服务器

Web APi Vs MVC 和在 ASP.net 核心 Web APi 中提供静态文件

如何从 Java ME 应用程序使用 ASP.NET Web API

将我的 ICollection 覆盖为我的 edmx 文件中的 IList 的最佳方法,在 asp.net MVC Web 应用程序中

从 DotNetNuke 迁移到 ASP.NET Core

如何在 asp.net 中创建 RESTful Web 服务?