【问题标题】:EnableCors C# .NET Core 3EnableCors 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

【问题讨论】:

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


【解决方案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”来自我的控制器。
    猜你喜欢
    • 2020-03-20
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多