Задать вопрос
danila_net
@danila_net
Изучаю CLR, C#, ASP.NET

Как настроить CORS .NET 8?

У меня есть приложение .net 8 Rest API.
Код Program.cs
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Api_S.Models;
using Microsoft.AspNetCore.Authentication.Negotiate;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
    .AddNegotiate();
builder.Services.AddAuthorization(options =>
{
    options.FallbackPolicy = options.DefaultPolicy;
});
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<GENERALContext>(options =>
    options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddAuthorization();

builder.Services.AddControllers();

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

builder.Services.AddCors(options => 
{ options.AddPolicy("AllowSpecificOrigins", 
    builder => { builder.WithOrigins("http://localhost:3000", "https://localhost:3000", "https://localhost:7026") 
    .AllowAnyMethod() 
    .AllowAnyHeader() 
    .AllowCredentials();
 }); 
});
   
var app = builder.Build();

//app.UseCors("AllowEverything");
app.UseCors("AllowSpecificOrigins");

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}
app.UseHttpsRedirection();

app.UseAuthorization();
app.UseAuthorization();
app.MapControllers();

app.Run();


Если запустить API из браузера - все работает, но если из React - получаю ошибку CORS.
Как настроить CORS в NET 8 или как прописать заголовки в запросах fetch, чтобы получить данные в React?
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
NikFaraday
@NikFaraday
Student full-stack Developer
Вместо AddPolicy(...) используйте AddDefaultPolicy, а так же просто app.UseCors()
Ответ написан
tentrun
@tentrun
Fullstack (asp.net /react, vue, angular) deletant
Взял пример из своего проекта
builder.Services.AddCors();

var app = builder.Build();

//Set Cors Policy
app.UseCors(c => c.AllowAnyHeader());
app.UseCors(c => c.AllowAnyOrigin());
app.UseCors(c => c.AllowAnyMethod());
app.UseCors(c => c.WithOrigins("https://localhost:44421"));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы