Я постараюсь сделать это кратко, чтобы спасти цифровой дождевой лес. Пожалуйста, спросите, если я пропустил какие-то подробности.
У меня есть шаблон проекта asp .net 3.1 core + react в VS со встроенным сервером идентификации. Это работает нормально, но теперь я хочу сделать свой проект реакции в отдельном проекте. Итак, я начал новый проект create-react-app-project.
Итак, из моего нового проекта реакции, когда я вызываю OidcConfigurationController. Вызывается метод контроллера, и я могу выполнить код на стороне сервера. Затем я получаю сообщение об ошибке клиента Failed to fetch, которое, по-видимому, указывает на ошибку CORS.
Это то, что я получил, когда проверял заголовок на панели инструментов Chrome dev- ›сеть
Request URL: https://localhost:5001/authentication/_configuration/MyProject.Web
Referrer Policy: strict-origin-when-cross-origin
:authority: localhost:5001
:method: GET
:path: /authentication/_configuration/MyProject.Web
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,sv;q=0.8
origin: http://localhost:3000
referer: http://localhost:3000/
sec-ch-ua: "Google Chrome";v="87", " Not;A Brand";v="99", "Chromium";v="87"
sec-ch-ua-mobile: ?0
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: cross-site
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Это соответствующие строки в startup.cs
ConfigureServices ()
services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
builder =>
{
//builder.WithOrigins("http://localhost:3002/", "https://localhost:3001")
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
services.AddSingleton<ICorsPolicyService>((container) => {
var logger = container.GetRequiredService<ILogger<DefaultCorsPolicyService>>();
return new DefaultCorsPolicyService(logger)
{
AllowAll = true
};
});
Настроить ()
app.UseCors(MyAllowSpecificOrigins); // I also tried to switch order on these 2 rows
app.UseIdentityServer();
Ничего из того, что я здесь делаю, похоже, не меняет политику реферера в заголовке, но все равно получаю то же самое сообщение
React-call - это простая выборка (адрес-контроллера-который-он-поражает).
Я также попытался запустить новый проект на стороне сервера (asp net core api) и установить ту же политику CORS, я могу вызвать этот api из моего реагирующего клиента без каких-либо ошибок)