Hemos estado investigado en todo el mundo online y así de este modo traerte la respuesta a tu dilema, si tienes alguna pregunta deja tu pregunta y respondemos sin falta, porque estamos para ayudarte.
Solución:
Debe configurar una política de CORS al iniciar la aplicación en el ConfigureServices
método:
public void ConfigureServices(IServiceCollection services)
services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
));
// ...
los CorsPolicyBuilder
en builder
le permite configurar la política según sus necesidades. Ahora puede usar este nombre para aplicar la política a controladores y acciones:
[EnableCors("MyPolicy")]
O aplicarlo a cada solicitud:
public void Configure(IApplicationBuilder app)
app.UseCors("MyPolicy");
// ...
// This should always be called last to ensure that
// middleware is registered in the correct order.
app.UseMvc();
Se aplica a .NET Core 1 y .Net Core 2 (más abajo)
si usa .Net-Core 1.1
Desafortunadamente, los documentos son muy confusos en este caso específico. Así que lo haré muy simple:
- Agregar
Microsoft.AspNetCore.Cors
paquete nuget para su proyecto - En
ConfigureServices
método, añadirservices.AddCors();
-
En
Configure
método, antes de llamarapp.UseMvc()
yapp.UseStaticFiles()
agregar:app.UseCors(builder => builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials());
Eso es todo. Cada cliente tiene acceso a su sitio web/API de ASP.NET Core.
si usa .Net-Core 2.0
- Agregar
Microsoft.AspNetCore.Cors
paquete nuget para su proyecto -
en
ConfigureServices
método, antes de vocaciónservices.AddMvc()
agregar:services.AddCors(options => options.AddPolicy("AllowAll", builder => builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); ); );
-
(Importante) En
Configure
método, antes de vocaciónapp.UseMvc()
agregarapp.UseCors("AllowAll");
AllowAll
es el nombre de la política que debemos mencionar en app.UserCors. Podría ser cualquier nombre.
Según la respuesta de Henk, pude encontrar el dominio específico, el método que quiero permitir y también el encabezado para el que quiero habilitar CORS:
public void ConfigureServices(IServiceCollection services)
services.AddCors(options =>
options.AddPolicy("AllowSpecific", p => p.WithOrigins("http://localhost:1233")
.WithMethods("GET")
.WithHeaders("name")));
services.AddMvc();
uso:
[EnableCors("AllowSpecific")]
Puedes reafirmar nuestro quehacer escribiendo un comentario y puntuándolo te estamos agradecidos.