升级到 .NET Core 2.2 后出现 CORS 问题

Posted

技术标签:

【中文标题】升级到 .NET Core 2.2 后出现 CORS 问题【英文标题】:CORS issues after upgrading to .NET Core 2.2 【发布时间】:2019-06-14 20:09:09 【问题描述】:

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

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

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

连接:关闭

内容长度:315

内容类型:文本/html; charset=us-ascii

日期:格林威治标准时间 2019 年 1 月 22 日星期二 15:08:26

服务器: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。

【问题讨论】:

截图解释了问题如何解决它。 CORS 启用并抱​​怨尝试访问第三方 URL。显示可以调用content....../user/avatar 的标头不见了。 好吧,我不太明白。我试过'AllowAnyOrigin()'但它也没有帮助。还是您的意思是我应该将呼叫更改为“内容”服务器?我只做后端,我应该改变调用并添加特定的标题吗? 顺便说一句,发布错误消息本身,而不是错误消息的图片。谷歌搜索标题名称和.net core 将返回相关答案。现在我必须手动输入才能搜索示例 您应该检查如何正确配置它,而不是尝试关闭 CORS。您正在寻找一种将content... URL 放入该标头的方法。而且我仍然需要手动输入才能搜索样本 毫无疑问这是 ASP.NET Core 2.2 的一个严重问题。解决方法在某些阶段有效,而在其他阶段无效;部署中的大问题。一场噩梦 【参考方案1】:

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

【讨论】:

以上是关于升级到 .NET Core 2.2 后出现 CORS 问题的主要内容,如果未能解决你的问题,请参考以下文章

升级到 asp.net core 2.2 后的空 href

从 ASP.NET Core 2.2 升级到 3.0

在 net core 2.2 中隐藏招摇的不良响应示例模型

升级到 DotNet Core 2.2 后 Azure 应用服务不运行

从 3.1 升级后的 .NET Core 5.0 Azure 部署 CORS 问题

从 .net core 2.2 移动到 3.1 后无法上传文件