Почему я получаю ошибки CORS при запуске этого метода PATCH из React в WebAPI?C#

Место общения программистов C#
Anonymous
Почему я получаю ошибки CORS при запуске этого метода PATCH из React в WebAPI?

Сообщение Anonymous »

Итак, вот мой код инициализации Cors:

Код: Выделить всё

        app.UseCors(builder =>
builder.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin());
И все же, когда я запускаю PATCH, я получаю следующую ошибку в Chrome 83:
Доступ для загрузки по адресу «https://api-dev. myproject.com/api/mp» из источника «https://users-dev.myproject.com» заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Если непрозрачный ответ соответствует вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.
Вот код, вызывающий API (из React). :

Код: Выделить всё

  const response = await fetch(API_URL() + `/mp`, {
method: 'PATCH',
body: `"${JSON.stringify(mpForm.values)}"`,
headers: {
Authorization: 'Bearer ' + apiToken,
'Content-type': 'application/json'
}
});
Что здесь может быть не так? Большинство запросов API к этому домену выполняются нормально. На данный момент это только этот.
ОБНОВЛЕНИЕ
На случай, если у вас возникла именно эта проблема, корень Причиной этой проблемы была линия тела:

Код: Выделить всё

body: `"${JSON.stringify(mpForm.values)}"`,
и проблема была решена путем рефакторинга API для работы с таким телом:

Код: Выделить всё

body: JSON.stringify(mpForm.values),
Причина этой проблемы заключалась в том, что функция stringify заключала в возвращаемое значение двойные кавычки, в результате чего передавалась такая строка:

Код: Выделить всё

'"{"foo":"bar"}"'
что затем вызвало ошибку CORS.

Подробнее здесь: https://stackoverflow.com/questions/629 ... -to-webapi

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