Не работают заголовки 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 вверх и вниз, но безуспешно.
не знаю, как получить фактические заголовки, но вот журнал :
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",
]