首页 > 解决方案 > Angular/.net 核心 webapi 应用程序中的 CORS 问题

问题描述

我正在使用 Angular 8 和 .net core 3.0.1 试图了解有关 Web 应用程序开发的知识。不幸的是,当我尝试将一些数据从我的 .net 核心 webapi 调用到 Angular 框架应用程序时,我遇到了一些问题。在浏览器控制台中,我收到有关 CORS 访问的错误。

从源“ http://localhost:4200 ”访问“ https://localhost:5001/api/user/pagewise/1/10 ”的 XMLHttpRequest已被 CORS 策略阻止:没有“访问控制允许源” ' 请求的资源上存在标头。

我以为我已经在我的 webapi Startup.cs 中激活了 Cors:

...
public void ConfigureServices(IServiceCollection services)
       {   
           _connectionString ="XXX";

           services.AddCors( opt => 
               {
                   opt.AddPolicy("CorsPolicy",
                   c => c.AllowAnyOrigin()
                         .AllowAnyMethod()
                         .AllowAnyHeader());
               })
               ;
           services.AddControllers();
           services.AddEntityFrameworkNpgsql()
           .AddDbContext<ApiContext>(
               opt => opt.UseNpgsql(_connectionString));
       } 
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DataSeed seed)
       {
           if (env.IsDevelopment())
           {
               app.UseCors("CorsePolice");
               app.UseDeveloperExceptionPage();

           }
           app.UseCors("CorsePolice");

           app.UseHttpsRedirection();

           app.UseRouting();

           app.UseAuthorization();

           app.UseEndpoints(endpoints =>
           {
               endpoints.MapControllers();
               endpoints.MapControllerRoute("default", "api/{controller}/{action}/{id?}");
               endpoints.MapControllers().RequireCors("CorsPolicy");
           });
  }        

但它似乎不起作用。在 .net core 3.0.1 WebApi 中使用 Cors 有什么不同的方法吗?

标签: angularcorsasp.net-core-webapi

解决方案


您收到 CORS 错误的原因可能有很多:- 1. 在从角度端对 API 的请求中使用正确的标头 2. 可能您不允许来自后端端的 CORS

解决使用问题:- 1. 在 Angular 中使用 allow-cross-origin 2. 尝试在 chrome 浏览器中使用 cors 插件,我想你的问题会解决的。

另外,尝试通过邮递员使用API​​,它会确定哪一方是问题

这些是我面临的一些问题以及我解决的方法。我不确定它一定会帮助你,但试一试可能会有所帮助。


推荐阅读