首页 / ASP.NET Core / 正文

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

1772 发布于: 2018-11-05 读完约需4分钟

问题描述

在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应用程序开发中如何手动解决获取依赖注入(DI)的实例?

下一篇: [ASP.NET Core]ASP.NET Core应用程序开发中连接MySQL数据库时出现不支持SSL连接的异常?

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

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册