升级到.NET Core 2.2之后的CORS问题

时间:2019-01-21 12:23:34

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

我有一个.NET Core 2.1应用程序,可以很好地处理CORS。但是升级到2.2后,我遇到了问题:

google chrome

  

从原点“ https://content.xxxx/user/avatar”到“ https://cabinet.xxxx”处对XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'Access-Control-Allow-来源的标头出现在请求的资源上。

响应标题:(这可能是IIS的问题吗?)

  

连接:关闭

     

内容长度:315

     

Content-Type:文本/ html; charset = us-ascii

     

日期:周二,2019年1月22日15:08:26 GMT

     

服务器:Microsoft-HTTPAPI / 2.0

我尝试了在这里可以找到的每种组合(在MVC之前和之后启用CORS,从Configure方法中添加和删除UseCors),但是没有任何效果。

 public IServiceProvider ConfigureServices(IServiceCollection services)
    {
       ...
        services.AddCors(options =>
        {
            options.AddPolicy("MyPolicy",
                builder => builder.WithOrigins("https://cabinet.xxxxxx")
                                  .AllowAnyMethod()
                                  .AllowCredentials()
                                  .AllowAnyHeader());
        });


        services.AddMvc();
        ...
    }

   public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseHsts();
        //app.UseHttpsRedirection();
        app.UseCors("MyPolicy");
        app.UseMvc();
        app.UseDefaultFiles();
        app.UseStaticFiles();
    }

方法是

    [HttpPost]
    [EnableCors("MyPolicy")]
    [Route("user/avatar")]
    [Authorize]
    public async Task Method(IFormFile file) {...}

我想念什么吗?我不想降级到2.1。

1 个答案:

答案 0 :(得分:0)

显然,IIS配置存在问题。将网站移至另一个端口有帮助。