Не работают заголовки django cors (да, я знаю, что 100 человек уже спрашивали, но их решения не сработали)

my settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'channels',
    'chatterapi',
    'chatterchannels',
    "corsheaders",
]

MIDDLEWARE = [
    "corsheaders.middleware.CorsMiddleware",
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

CORS_ALLOW_ALL_ORIGINS: True

* приложения chatter - это мои приложения, и я также использую django channels. пробовал перемещать заголовки cors вверх и вниз, но безуспешно.

не знаю, как получить фактические заголовки, но вот журнал :

enter image description here

my views.py ?

@api_view(['POST'])
def createRoom(request):
    key = get_random_string(15)
    request.POST._mutable = True
    request.data['key'] = key
    request.POST._mutable = False
    print(request.data)
    serializer = RoomSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data)
    else:
        return Response(serializer.errors, status=400)

Я действительно не знаю, что происходит, дайте мне знать, если я могу как-то помочь. Возможно ли, что каналы django, переопределяющие команду runserver, вызывают конфликт или что-то в этом роде? (если это звучит глупо, пожалуйста, простите меня, потому что я действительно тупой)

Вы используете неправильный синтаксис для установки значения переменной. Измените строку

CORS_ALLOW_ALL_ORIGINS: True

to

CORS_ALLOW_ALL_ORIGINS = True

Иногда приведенный ниже код может не работать

CORS_ALLOW_ALL_ORIGINS = True

Попробуйте указать хосты вручную, как показано ниже

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

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