Как включить CORS в ASP.NET Керн
Я пытаюсь включить совместное использование ресурсов cross origin на моем ASP.NET ядро веб-API, но я застрял.
The
4 ответа:
вы должны настроить политику CORS при запуске приложения в
ConfigureServicesспособ:public void ConfigureServices(IServiceCollection services) { services.AddCors(o => o.AddPolicy("MyPolicy", builder => { builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader(); })); // ... }The
CorsPolicyBuilderнаbuilderпозволяет настроить политику в соответствии с вашими потребностями. Теперь вы можете использовать это имя для применения политики к контроллерам и действиям:[EnableCors("MyPolicy")]или применить его к каждому запросу:
public void Configure(IApplicationBuilder app) { app.UseCors("MyPolicy"); // ... }
это
.Net-Core 1.1к сожалению, документы очень запутаны в этом конкретном случае. Так что я сделаю его мертвым-просто:
- добавить
Microsoft.AspNetCore.Corsпакет nuget для вашего проекта- на
ConfigureServicesспособ, добавьтеservices.AddCors();на
Configureспособ, перед вызовомapp.UseMvc()иapp.UseStaticFiles()добавить:app.UseCors(builder => builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials());вот и все. Каждый клиент имеет доступ к вашему ASP.NET Керн Сайт / API.
на
.Net-Core 2.0
- добавить
Microsoft.AspNetCore.Corsпакет nuget для вашего проектана
ConfigureServicesспособ, перед вызовомservices.AddMvc()добавить:services.AddCors(options => { options.AddPolicy("AllowAll", builder => { builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); }); });на
Configureспособ, перед вызовомapp.UseMvc()добавьтеapp.UseCors("AllowAll");
AllowAllэто имя политики, которое мы должны упомянуть в приложении.Пользователи. Это может быть любое имя.
на основе ответ Хенка я смог придумать конкретный домен, метод, который я хочу разрешить, а также заголовок, который я хочу включить CORS для:
public void ConfigureServices(IServiceCollection services) { services.AddCors(options => options.AddPolicy("AllowSpecific", p => p.WithOrigins("http://localhost:1233") .WithMethods("GET") .WithHeaders("name"))); services.AddMvc(); }использование:
[EnableCors("AllowSpecific")]
'
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")); }); }'