我想在用ASP.NET Core构建的API上启用CORS,但是当前的所有文档都引用了该框架的早期版本。
发布于 2015-05-17 22:44:03
关于新的Cors特性的注释非常轻,但是我能够通过查看新的类和方法使它在我的解决方案中工作。我的Web startup.cs如下所示。您可以看到如何通过使用新的CorsPolicy
类来构造您的源和策略。并使用AddCors
和UseCors
方法启用CORS。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//Add Cors support to the service
services.AddCors();
var policy = new Microsoft.AspNet.Cors.Core.CorsPolicy();
policy.Headers.Add("*");
policy.Methods.Add("*");
policy.Origins.Add("*");
policy.SupportsCredentials = true;
services.ConfigureCors(x=>x.AddPolicy("mypolicy", policy));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// Configure the HTTP request pipeline.
app.UseStaticFiles();
//Use the new policy globally
app.UseCors("mypolicy");
// Add MVC to the request pipeline.
app.UseMvc();
}
您还可以使用新属性引用控制器中的策略,如下所示
[EnableCors("mypolicy")]
[Route("api/[controller]")]
发布于 2015-06-03 23:48:36
我让它使用以下代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin()));
}
如果需要,可以将AllowAnyHeader()
和/或AllowAnyMethod()
链接到配置操作。
要将其配置为完整的应用程序:
public void Configure(IApplicationBuilder app)
{
app.UseCors("AllowAll");
}
或者仅仅是为了一个控制器:
[EnableCors("AllowAll")]
public class HomeController : Controller
{
// ...
}
--
更新:可以更容易地为所有请求配置CORS:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddCors();
}
public void Configure(IApplicationBuilder app)
{
app.UseCors(builder =>
{
builder.WithOrigins("http://some.origin.com")
.WithMethods("GET", "POST")
.AllowAnyHeader();
});
}
有关更多信息,请参阅文档。
发布于 2016-06-01 09:42:40
在最近的RC2
of ASP.NET Core。
NuGet包是
"Microsoft.AspNetCore.Owin": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Cors": "1.0.0-rc2-final",
在Startup.cs中
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddCors();
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseCors(builder => builder
.AllowAnyOrigin());
app.UseMvc();
}
https://stackoverflow.com/questions/29100538
复制相似问题