【问题标题】:Cors issue when using multiple project in .net core solution在 .net 核心解决方案中使用多个项目时出现 Cors 问题
【发布时间】:2017-09-07 10:42:57
【问题描述】:

我有一个包含多个 .net 核心项目的项目。我在从项目 A 向项目 B 拨打电话时遇到问题。我不断收到一个 cors 问题,指出存在 no-access-control-allow-origin。我在下面有这个设置,由于某种原因无法正常工作。

 public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddCors();
            services.AddMvc().AddMvcOptions(options => options.RespectBrowserAcceptHeader = true);

        }

   public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IAntiforgery antiforgery)
        {
            loggerFactory.AddDebug(LogLevel.Information).AddSerilog();



            app.UseCors(builder =>
              builder.WithOrigins("*")
              .WithMethods("*")
              .AllowAnyHeader()
              .AllowAnyMethod()
              .AllowAnyOrigin()
              );

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");

            });
        }

【问题讨论】:

    标签: c# .net asp.net-core cors


    【解决方案1】:

    通配符不起作用。

    试试这个:

    app.UseCors((builder) => {
        builder.AllowAnyOrigin();
        builder.AllowAnyHeader();
        builder.AllowAnyMethod();
    });
    

    https://docs.microsoft.com/en-us/aspnet/core/security/cors#set-the-allowed-origins

    【讨论】:

    • 我试过这个,但由于某种原因我仍然得到同样的错误。项目 A 是 .net 核心项目而项目 B 是 .net Framework 项目是否重要?
    【解决方案2】:

    这就是我的做法。效果很好。 JimmyH 的建议应该可行,我只是想给你另一种选择。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors(options =>
        {
            options.AddPolicy("AnyOrigin", builder =>
            {
                builder
                    .AllowAnyOrigin()
                    .AllowAnyHeader()
                    .AllowAnyMethod();
            });
        });
    
        services.AddMvc();
        ...
    }
    
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        ...
        app.UseCors("AnyOrigin");
        app.UseMvc(routes =>
                {
                    routes.MapRoute(
                        name: "default",
                        template: "{controller=Home}/{action=Index}/{id?}");
    
                });
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 2020-05-12
      • 2021-05-25
      相关资源
      最近更新 更多