【问题标题】:http request from angular blocked due to CORS policy in .Net core由于 .Net 核心中的 CORS 策略,来自 Angular 的 http 请求被阻止
【发布时间】:2021-06-08 16:04:11
【问题描述】:

我目前正在从事 .Net 核心项目。我的前端是有角度的。我已经在服务器端处理了 CORS,事实上,它在 JWT 实现后遇到此错误后更早工作。

错误:从源“https://localhost:4200”访问“https://localhost:5001/api/users”处的 XMLHttpRequest 已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”请求的资源上存在标头。

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseSwagger();
            app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1"));
        }

        app.UseHttpsRedirection();

        app.UseRouting();

        app.UseCors(x=>x.AllowAnyHeader().AllowAnyMethod().WithOrigins("https://localhost:4200/"));

        app.UseAuthentication();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });
    
    }
     public void ConfigureServices(IServiceCollection services)
    {

        services.AddApplicationServices(_config);
        services.AddControllers();


        // services.AddCors(optpolicy => optpolicy.AddPolicy().AllowAnyMethod().WithOrigins("https://localhost:4002/"));
        services.AddCors();
        
        services.AddIdentityServices(_config);


        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" });
        });
    }

    getUsers()
 {
   this.http.get('https://localhost:5001/api/users').subscribe(response=>{
  this.users=response;
  },error=>{console.log(error);
   }
   );
   }

【问题讨论】:

  • 这能回答你的问题吗? Deadly CORS when http://localhost is the origin
  • Chrome 不支持 localhost 作为 CORS 地址
  • @Liam 感谢您的建议,但在 Microsoft Edge 中也遇到了同样的错误
  • 将 localhost 更改为 127.0.0.1 后出现同样的错误 - 从源 'localhost:5001/api/users' 访问 XMLHttpRequest 已被 CORS 策略阻止:否 'Access-Control-Allow-Origin ' 请求的资源上存在标头。

标签: c# angular .net-core cors


【解决方案1】:

您使用了错误的语法和错误的端口号 4002。试试这个

配置服务:

services.AddCors(o => o.AddPolicy("AllowSomeOrigins", builder =>
            {
                builder.WithOrigins("https://localhost:4200")
                       .AllowAnyMethod()
                       .AllowAnyHeader();
            }));

请注意,您不应在 url 中使用尾随“/”,此代码应位于该部分的顶部。

配置:

app.UseCors("AllowSomeOrigins");

原地离开。

【讨论】:

  • 试过你的代码 sn-p 遇到同样的问题,我尝试了不同的选项,但仍然面临同样的问题
  • @Thiyagarajan 修复错误的端口号 4002 到 4200
猜你喜欢
  • 2021-09-15
  • 1970-01-01
  • 2021-05-19
  • 2022-01-14
  • 2019-11-30
  • 2019-10-01
  • 2020-09-21
  • 2019-07-01
  • 2019-06-26
相关资源
最近更新 更多