【问题标题】:Cors Not working even when configuring in webapi config即使在 webapi 配置中配置,Cors 也无法正常工作
【发布时间】:2018-06-23 05:06:11
【问题描述】:

我在 Visual Studio 中创建了一个 Web api,并且我还配置了 EnableCorsAttribute 属性(来源:“”,标题:“”,方法:“*”)。现在,当我从 url 访问控制器的方法时,我仍然收到此消息“System.Collections.Generic.List`1[WebApplication1.Models.Customer]”
错误信息如下:https://i.stack.imgur.com/RvyGF.png

【问题讨论】:

  • 发布完整的错误信息。乍一看,这不像是 CORS 问题
  • 错误信息如下:i.stack.imgur.com/RvyGF.png
  • 请同时发布您的 WebApiConfig.cs 代码

标签: c# angular asp.net-web-api asp.net-web-api2 asp.net-core-webapi


【解决方案1】:

问题解决了,这是个愚蠢的错误。我试图访问 api 控制器以外的普通控制器来调用它。我更正了它,现在我可以访问和获取数据了。

感谢大家的cmets和努力。

【讨论】:

    【解决方案2】:

    要在 ASP.net Core 2.0(类似于 1.*)中配置 CORS,您必须执行以下操作:

    在以下两种情况下,将代码放在 services.AddMvc() 和 app.UseMvc() 之前。

    在您的 startup.cs 中的 ConfigureServices 方法中:

            if (environment.IsDevelopment())
            {
                services.AddCors();
            }
            services.AddMvc();
    

    在配置方法中:

            if (environment.IsDevelopment())
            {
                app.UseCors(
                    options => options.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()
                );
            }
            app.UseMvc();
    

    如果您也想在生产环境中使用这种行为,可以跳过 if 语句。

    记得参考 Microsoft.AspNetCore.Cors 包。

    【讨论】:

    • 我在 startup.cs 中没有找到任何 ConfigureServices 方法,是否需要创建它并调用 services.AddCors();在里面。
    • 您使用的是 ASP.net core ore ASP.net webapi 2 吗?我的答案实际上是针对 ASP.net 核心项目
    • 我一直在使用 ASP.net webapi 2
    猜你喜欢
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多