0

我正在尝试从我的 Angular 前端对我的 C# Web API 进行 API 调用。我已经通过 HTTP 和 HTTPS 进行了尝试。

HTTP:我收到 CORS 异常 HTTPS:我收到 CONNECTION CLOSED EXCEPTION

我也通过 Postman 尝试过它并且它有效,所以后端不应该是问题。

我正在使用 Angular HTTP 客户端。

4

2 回答 2

1

在 ConfigureServices 的 Startup.cs 文件中,必须存在以下代码

public void ConfigureServices(IServiceCollection services) method.
{
                services.AddCors(options => options.AddPolicy("CorsPolicy",
                  builder => builder
                  .WithOrigins("http://localhost:4200", "YOUR_REQUEST_ORIGIN_URI")
                  .AllowAnyMethod()
                  .AllowAnyHeader()
                  .AllowCredentials()));
}
于 2021-08-19T12:25:31.733 回答
-1

Cors 是浏览器的安全性,没有 api 中的 cors 配置在 postman 上工作,postman 不是 Web 浏览器。

尝试在您的 api 上添加 Cors 配置

  1. [AspNet 网络 API]

安装包

Install-Package Microsoft.AspNet.WebApi.Cors

在App_Start/WebApiConfig.cs中编辑 WebApiConfig 文件

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        //change www.example.com for you domain, like localhost
        var cors = new EnableCorsAttribute("www.example.com", "*", "*");
        config.EnableCors(cors);
    }
}
  1. [.Net核心]

编辑Startup.cs并添加 CORS 中间件和服务

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors(options =>
        {
            options.AddDefaultPolicy(
                builder =>
                {
                    //change www.example.com for you domain, like localhost
                    builder.WithOrigins("http://example.com");
                });
        });

        services.AddControllers();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();

        app.UseCors();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });
    }
}

参考

AspNet WebApi .Net 核心

于 2021-08-04T20:14:35.107 回答