ASP.NET Webapi 中 HTTP 的 Cors 错误,但不是 HTTPs

Posted

技术标签:

【中文标题】ASP.NET Webapi 中 HTTP 的 Cors 错误,但不是 HTTPs【英文标题】:Cors Error for HTTP but not for HTTPs in ASP.NET Webapi 【发布时间】:2021-07-27 07:08:33 【问题描述】:

我的 Ionic-Angular 前端正在尝试从 C# ASP.NET Webapi 获取数据,两者都作为 Azure 应用服务托管。

使用 https 时可以正常工作,但使用 http 时不行。

我在我的 startup.cs 中尝试了不同的配置,但不知何故它没有通过:

opt.AddPolicy("CorsPolicy", policy =>
                    
                        policy
                        .AllowAnyOrigin()
                        .AllowAnyHeader()
                        .AllowAnyMethod();
            
                        // policy.AllowAnyHeader().AllowAnyMethod().WithOrigins("http://localhost:8100");
                    );
   opt.AddPolicy("CorsPolicy", policy =>
                    
                        policy
                        .WithOrigins("https://cappuccinobudget.azurewebsites.net", 
                                     "http://cappuccinobudget.azurewebsites.net" )
                                     .AllowAnyHeader()
                                     .AllowAnyMethod();
            
                        
                    );

有什么建议吗?

【问题讨论】:

看到这个***.com/questions/59317789/… 这篇文章需要更多细节。 【参考方案1】:

尝试用这个替换你的 Cors 语法

services.AddCors(o => o.AddPolicy("CorsPolicy",
                    builder =>
                    
                       builder.WithOrigins("http://localhost:8100")
                       .AllowAnyMethod()
                       .AllowAnyHeader();
            ));
.....

    app.UseCors("CorsPolicy");

【讨论】:

能否请您发布包含我的提示的整个启动文件?

以上是关于ASP.NET Webapi 中 HTTP 的 Cors 错误,但不是 HTTPs的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET MVC/WebAPI 应用程序中支持 HTTP OPTIONS 动词

HTTP post请求中的多个参数不在Asp.net webApi 2.0中绑定

01Getting Started---Getting Started with ASP.NET Web API 2入门WebApi2

ASP.Net WebAPI 返回列表中的空对象

Asp .Net Core WebApi:异常的第二次http调用

ASP.NET WebApi SelfHost 服务在 HTTP URL 注册上失败