【问题标题】:I am migrating my asp.net web api to asp.net core. Cors migration我正在将我的 asp.net web api 迁移到 asp.net core。 Cors 迁移
【发布时间】: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 核心。如何做呢?请帮忙。

【问题讨论】:

    标签: asp.net asp.net-core migration cors


    【解决方案1】:
    1. 添加 CORS 服务:

      public void ConfigureServices(IServiceCollection services)
      {
          services.AddCors(options => options.AddPolicy("AllowAll", builder =>
          {
              builder
                  .AllowAnyHeader()
                  .AllowAnyMethod()
                  .AllowAnyOrigin()
                  .AllowCredentials()
                  .WithExposedHeaders("DataServiceVersion", "MaxDataServiceVersion");
          }));
      }
      
    2. 使用 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();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 2017-08-27
    • 2016-06-30
    • 2021-05-03
    • 2021-06-04
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多