Проблема CORS в Electron App с удаленным сервером (ядро ASP.NET)C#

Место общения программистов C#
Ответить
Anonymous
 Проблема CORS в Electron App с удаленным сервером (ядро ASP.NET)

Сообщение Anonymous »

Я сталкиваюсь с стойкой проблемой Cors, когда мое электронное приложение (Vue Frontend) работает на компьютере, отдельно от моего сервера ASP.net Core Backend. Сообщение об ошибке: < /p>
Access to fetch at 'http://fox.os-pds.com/api/Auth/login' from origin 'http://localhost:8080' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response
must not be the wildcard '*' when the request's credentials mode is 'include'.

< /code>
Теперь, после явного настройки: < /p>
credentials: 'include', // Include credentials in app.vue
< /code>
Я получаю: < /p>
Access to fetch at 'http://fox.os-pds.com/api/Auth/login' from origin 'http://localhost:8080' has been blocked by CORS policy:
Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.
< /code>
setup:
frontend: vue.js (работа в электроне)
Backend: Asp.net Core (настроено с Cors)
Режим запроса: учетные данные : 'include' (для аутентификации)
Cors Configuration в ASP.net Core (Program.cs):
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowFrontend", policy =>
{
policy.WithOrigins(["http://localhost:8080", "https://menuelounge.com", "https://mobileerp.schnaithmann.de"])
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials(); // REQUIRED for authentication cookies/tokens
});
});

app.UseCors("AllowFrontend");
< /code>
промежуточное программное обеспечение для обработки запросов на предварительное выполнение: < /p>
app.Use(async (context, next) =>
{
if (context.Request.Method == "OPTIONS")
{
context.Response.StatusCode = 204; // No Content
context.Response.Headers.Add("Access-Control-Allow-Origin", context.Request.Headers["Origin"]);
context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
context.Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type, Authorization");
context.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
return;
}
await next();
});
< /code>
Проблемы:
cors по-прежнему блокируют запросы, когда электронное приложение запускается вне сервера.
Ошибка предполагает, что доступа к авостово-авостово включены.
Теперь получение ошибки предварительного совета контента, несмотря на то, что разрешает alloannehheader ().
cors работает локально (Localhost: 8080), но не при размещении Внешне.
Что я попробовал:
вручную настройки заголовков в промежуточном программном обеспечении предвещения.
Подтверждение правильного происхождения перечислено в hioRigins ().
Testming API в почтальоне (работает нормально). Только электронные запросы избрать сбой.
Явно добавление контента в контент-тип к управляющему управлению, но это не решило проблему. Конфигурация неверна для электрона?
Должен ли я обращаться с CORs по-разному, когда электронное приложение работает на разных машинах? Упражнения с разрешением Access-Control-Allow правильно устанавливаются при включении учетных данных? >
Любое руководство ценится! 🚀github для кода: githubrepo

Подробнее здесь: https://stackoverflow.com/questions/794 ... p-net-core
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»