Django CORS Headers работает при разрешении для всех, но не для указанного происхождения

У меня есть React frontend (размещенный на http://localhost:3000/), который пытается отправить токены обновления JWT через HttpOnly Cookies в Django REST API (размещенный на http://localhost:8000/, но туннелированный с помощью ngrok на https адрес).

Я использую django-cors-headers, чтобы справиться с кросс-оригинальным аспектом этого. Однако, что бы я ни делал, я не могу заставить это работать (несмотря на несколько дней исследований). Любая помощь будет очень признательна :D

Я думаю, что правильно обращаюсь к конечной точке (т.е. https://ngrokapiurl/api/token/refresh/), и я поместил 'corsheaders.middleware.CorsMiddleware', в начало блока промежуточного программного обеспечения.

Ошибки CORS исчезают, когда я указываю CORS_ORIGIN_ALLOW_ALL = True. Однако, я не только понимаю, что с точки зрения безопасности это не идеально, но это также не работает, когда я устанавливаю CORS_ALLOW_CREDENTIALS = True, чтобы позволить withCredentials: True части моего запроса axios отправлять HttpOnly cookie, содержащий маркер обновления. Поэтому я удаляю CORS_ORIGIN_ALLOW_ALL = True и устанавливаю

CORS_ALLOWED_ORIGINS = [
    "http://localhost:3000",
]

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

Ошибка, которую я получаю: error

В Safari я получаю "No Response Headers" на вкладке Network консоли разработчика.

Если вы хотите увидеть что-нибудь еще, чтобы помочь в отладке, я буду более чем счастлив поделиться всем необходимым. Спасибо!

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