Проблемы заключаются в том, что вы отправляете HTTP-запрос, но ваше промежуточное ПО Cors регистрируется поздно в конвейере и никогда не вызывается по HTTP-запросам из-за
app.UseHttpsRedirection();
app.UseAuthentication();
Другими словами: если ваш запрос находится на http, промежуточное программное обеспечение UseHttpsRedirection
будет закорачивать конвейер и возвращать ответ без требуемых заголовков CORS во время предварительной проверки. То же самое относится, если вы делаете это через https, но пользователь не авторизован.
Чтобы разрешить CORS на http (или перед перенаправлением), а также для неавторизованных пользователей, вам необходимо зарегистрировать промежуточное программное обеспечение до строк выше
// now CORS is handled before https redirection & before authentication
app.UseCors("ClientDomain");
app.UseHttpsRedirection();
app.UseAuthentication();
app.UseMvc();
Всегда помните, что промежуточное программное обеспечение вызывается в порядке их регистрации (UseXxx
вызовы).
Общая информация. Когда вы получаете исключение для любого промежуточного программного обеспечения, оно будет CLEAR для заголовков. Следовательно, методы, генерирующие исключение, не будут содержать заголовки cors, даже если регистрация промежуточного программного обеспечения cors правильна