[ASP.NET Core]ASP.NET Core应用程序开发中如何开启服务端的跨域CORS配置?

ASP.NET Core 作者: Rector 22阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在ASP.NET Core的应用程序开发中,特别是开发ASP.NET Core Web API的接口程序会遇到跨域问题。这时我们需要开启ASP.NET Core服务端的跨域(CORS)功能,那么应该如何开启呢?

方案一

在ASP.NET Core的应用程序开发中,微软已经实现了跨域的配置功能,只需要在启动类Startup.cs文件中配置并开启跨域(CORS)功能即可,具体如下:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
    {
        builder.AllowAnyOrigin()
               .AllowAnyMethod()
               .AllowAnyHeader();
    }));

    // ...
}

然后,我们便可以在控制器或者控制器的Action上使用属性类EnableCors("MyPolicy")即可,如:

[EnableCors("MyPolicy")]
public class HomeController : Controller
{
}

或者要对程序的所有请求启用跨域的话,可以直接在Startup.cs文件中的Configure()方法配置,如下:

public void Configure(IApplicationBuilder app)
{
    app.UseCors("MyPolicy");

    // ...
}

方案二

配置一个支持所有请求的跨域配置,如下:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddPolicy("AllowAnyOrigin",
            builder => builder
            .AllowAnyOrigin()
            .AllowAnyMethod()
            .AllowAnyHeader());
    });

    services.Configure<MvcOptions>(options => {
        options.Filters.Add(new CorsAuthorizationFilterFactory("AllowAnyOrigin"));
    });            
}

阅读了该文章的人还浏览了...

本文永久链接码友网 » [ASP.NET Core]ASP.NET Core应用程序开发中如何开启服务端的跨域CORS配置?

发布于: 2018-11-05 09:02:45
分享扩散: