代码之家  ›  专栏  ›  技术社区  ›  LP13

为本地主机上的任何端口启用CORS

  •  0
  • LP13  · 技术社区  · 5 年前

    在asp.netcore我可以使用中间件在某些方法上启用CORS,比如 described here

    我想知道是否可以为任何方案和任何端口启用CORS localhost

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors(options =>
        {
            if(_environment.IsDevelopment())
            {
                  options.AddDefaultPolicy(
                     builder =>
                     {
                         builder.WithOrigins("http://localhost/*",
                                             "https://localhost/*");
                     });
                 });
            }
            else
            {
                options.AddDefaultPolicy(
                     builder =>
                     {
                         builder.WithOrigins("http://example.com",
                                             "http://www.contoso.com");
                      });
                 });
            }
    
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    }
    
    1 回复  |  直到 5 年前
        1
  •  16
  •   Kirk Larkin    4 年前

    ASP.NET核心 SetIsOriginAllowed

    if(_environment.IsDevelopment())
    {
        options.AddDefaultPolicy(builder =>
        {
            builder.SetIsOriginAllowed(origin => new Uri(origin).Host == "localhost");
        });
    }
    else
    {
        // ...
    }
    

    这个 origin 设置为初始值 delegate是完整的原点,看起来像 http://localhost:8080 Uri ,上面的代码比较 Host 反对 localhost ,最终允许 本地服务器 起源。

        2
  •  0
  •   James    5 年前

    我目前正在使用这个测试,它的工作,如果你把通配符从你的应该工作。

    public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
    
            services.AddMvc();
    
            services.AddCors(options =>
            {
                options.AddPolicy(MyAllowSpecificOrigins,
                builder =>
                {
                    builder.WithOrigins("http://localhost");
                });
            });
    
    
    
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
       }