EnableCors C# .NET Core 3
Posted
技术标签:
【中文标题】EnableCors C# .NET Core 3【英文标题】: 【发布时间】:2020-02-14 09:20:45 【问题描述】:我正在使用 C# API 并从我的前端发出 GET 请求,为此我需要在我的 API 中启用 cors,但我似乎做不到!
这是一个 .NET Core 3 API,我尝试过遵循 this 教程,我还尝试通过以下方式安装 2.2 NuGet Package:
dotnet add package Microsoft.AspNetCore.Cors --version 2.2.0
但我在执行 GET 请求时仍然收到 cors 错误。
在尝试 [EnableCors] 注释时,我收到一条错误消息 “找不到 EnableCorsAttribute”...
我也加了
app.UseCors();
到我的 Startup.cs 但没有运气。
任何帮助将不胜感激!
编辑 - Startup.cs 粘贴在这里: https://pastebin.com/pCLSh3Tf
编辑 - 控制器粘贴在这里: https://pastebin.com/mUSfvNR0
【问题讨论】:
为什么是mvc
包?您的 api 是使用 mvc 还是普通的 .net 核心结构创建的?你能试试安装这个包吗nuget.org/packages/Microsoft.AspNetCore.Cors
app.UseCors( options => options.WithOrigins("localhost:4200", "localhost:4021").AllowAnyHeader().AllowAnyMethod(); );
@HariHaran 我的错。我没有使用 mvc 包。我已将问题编辑到我使用的正确包中。
【参考方案1】:
在ConfigureServices开头添加以下内容:
services.AddCors();
在Configure的开头添加以下内容:
app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
【讨论】:
【参考方案2】:不确定 Core 3.0 中是否有任何更改,但在 2.2 中我会这样解决:将其添加到 ConfigureServices
services.AddCors(options =>
options.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader());
);
还要确保在 Configure 方法中添加策略:
app.UseCors("CorsPolicy");
如果你想使用 cors,你可以编辑策略,因为这基本上是禁用它。
【讨论】:
我已添加 Microsoft.AspNetCore.Cors 并将您的答案复制到我的 Startup.cs 中。但是,在控制器中添加 [EnableCors("CorsPolicy")] 时,我仍然无法找到“EnableCorsAttribute”。有什么想法吗? 有了这个,你可以从你的控制器中删除 [EnableCors]。 由于某种原因,我仍然收到 Cors 错误并且找不到 EnableCorsAttribute(我也尝试过删除它).. 如果您想看看,我已经发布了 Startup.cs:@ 987654321@ 你在哪里得到这个错误?启动似乎很好,它应该是配置 CORS 所需的一切。 Cors-"error"/message 来自我的前端。 Firefox 中的开发工具告诉我“cors 请求没有成功”,我已经尝试使用 Java API 解决这个问题,只需在 API 中允许 cors 即可解决。 “未找到 EnableCoursAttribute”来自我的控制器。以上是关于EnableCors C# .NET Core 3的主要内容,如果未能解决你的问题,请参考以下文章