代码之家  ›  专栏  ›  技术社区  ›  Marc Rasmussen

内核Cors抛出错误

  •  1
  • Marc Rasmussen  · 技术社区  · 6 年前

    所以我有以下几点:

    public void ConfigureServices(IServiceCollection services)
    {
        var corsBuilder = new CorsPolicyBuilder();
        corsBuilder.AllowAnyHeader();
        corsBuilder.AllowAnyMethod();
        corsBuilder.AllowAnyOrigin();
        corsBuilder.AllowCredentials();
    
        services.AddCors(options =>
        {
            options.AddPolicy("AllowAllOrigins", corsBuilder.Build());
        });
    
        services.AddDbContextPool<ApplicationDbContext>(options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection")));
        services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>();
    
        services.AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddJsonOptions(
                options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
            );
    
        services.Configure<Infrastructure.FileOptions>(Configuration.GetSection("Files"));
        services.AddTransient<Infrastructure.ServiceCollection>();
    }
    

    如你所见,我允许所有人进入我的路线。

    但是,当我尝试访问路由时,会出现以下错误:

    https://localhost:44381/test :请求的资源上不存在“访问控制允许源”头。起源' http://localhost:4200 因此不允许访问。

    我做错了什么?

    2 回复  |  直到 6 年前
        1
  •  2
  •   OrcusZ    6 年前

    您应该在configure方法中添加此行

    app.UseCors("AllowAllOrigins");
    

    这将激活 异壁起源 在服务中配置的。

        2
  •  1
  •   Souvik Ghosh    6 年前

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors(o => o.AddPolicy("CORSPolicy", builder =>
        {
            builder.AllowAnyOrigin()
                   .AllowAnyMethod()
                   .AllowAnyHeader()
                   .AllowCredentials();
        }));
    }
    
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseCors("CORSPolicy");
    }
    

    另外,如果你在Azure上托管这个,你也需要在Azure中进行CORS设置。