首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在ASP.NET核心MVC中启用跨源请求(CORS)?

如何在ASP.NET核心MVC中启用跨源请求(CORS)?
EN

Stack Overflow用户
提问于 2015-03-17 05:37:37
回答 6查看 22.4K关注 0票数 33

我想在用ASP.NET Core构建的API上启用CORS,但是当前的所有文档都引用了该框架的早期版本。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-05-17 22:44:03

关于新的Cors特性的注释非常轻,但是我能够通过查看新的类和方法使它在我的解决方案中工作。我的Web startup.cs如下所示。您可以看到如何通过使用新的CorsPolicy类来构造您的源和策略。并使用AddCorsUseCors方法启用CORS。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 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();
 }

您还可以使用新属性引用控制器中的策略,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[EnableCors("mypolicy")]
[Route("api/[controller]")]  
票数 29
EN

Stack Overflow用户

发布于 2015-06-03 23:48:36

我让它使用以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin()));
}

如果需要,可以将AllowAnyHeader()和/或AllowAnyMethod()链接到配置操作。

要将其配置为完整的应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void Configure(IApplicationBuilder app)
{
    app.UseCors("AllowAll");
}

或者仅仅是为了一个控制器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[EnableCors("AllowAll")]
public class HomeController : Controller
{
   // ...
}

--

更新:可以更容易地为所有请求配置CORS:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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();
    });
}

有关更多信息,请参阅文档

票数 19
EN

Stack Overflow用户

发布于 2016-06-01 09:42:40

在最近的RC2 of ASP.NET Core。

NuGet包是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"Microsoft.AspNetCore.Owin": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Cors": "1.0.0-rc2-final",

在Startup.cs中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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();
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29100538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文