REACT + DJANGO - CORS-ошибки после входа - отсутствует CORS-заголовок 'Access-Control-Allow-Origin'

У нас есть приложение React + Django на экземплярах GCP App Engine, и мы сталкиваемся с ошибкой CORS при получении данных через наш REST API.

Мы уже установили и настроили пакет CORS для Django Rest Framework в нашем django-приложении:

`


ALLOWED_HOSTS = [
    'xxxxxxxxxxxx.appspot.com',
    'yyyyyyyyyyyy.appspot.com',
]

CORS_ALLOWED_ORIGINS=[
    'http://localhost:3000',
    'https://xxxxxxxxxxxx.appspot.com',
    'https://yyyyyyyyyyyy.appspot.com',
]

CORS_ALLOW_CREDENTIALS=True

`

Запрос preflight успешен, также как и вход в приложение, которое выполняет async-запрос к нашему бэкенду:


access-control-allow-origin: https://xxxxxxxxxxxxxxxxxxxxx.appspot.com
access-control-allow-headers: accept, accept-encoding, authorization, content-type, dnt, origin, user-agent, x-csrftoken, x-requested-with
access-control-allow-methods: DELETE, GET, OPTIONS, PATCH, POST, PUT
access-control-max-age: 86400

Правильный URL передается через заголовок allow-origins. Затем фактический GET-запрос блокируется с кодом ответа 400 от браузера и следующим сообщением об ошибке:

Cross-Origin Request Blocked: Политика одинакового происхождения запрещает чтение удаленного ресурса по адресу https://xxxxxx.appspot.com/api/entities?page_size=10. (Причина: отсутствует CORS-заголовок 'Access-Control-Allow-Origin'). Код состояния: 400.

Самое странное, что мы можем войти в приложение, и это использует асинхронный запрос к тому же домену, только после того, как мы вошли, появляется эта ошибка.

Мы просмотрели несколько страниц stackoverflow и различные конфигурации (например, использование Regex в конфигурации allow ORIGINS), но ничего не помогает, приложение всегда возвращает ошибку CORS.

У кого-нибудь есть идеи о том, что здесь может происходить?

После некоторой отладки мы поняли, что ошибка CORS на самом деле маскировала другую проблему, связанную с размером cookies, который превышал допустимый лимит сервера.

Единственным способом просмотреть эту ошибку был переход на вкладку сети и предварительный просмотр данных ответа в Firefox, в Edge ответ был пустым, и мы не смогли понять реальную проблему.

Вернуться на верх