问题描述
在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"));
});
}
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册