Я пытаюсь отправить данные на сервер Django, чтобы обновить профиль пользователя из приложения Next.js;
У меня есть аналогичная настройка с другими маршрутами, и они работают нормально ,
но здесь я получаю следующую ошибку:
Запрещено (файл cookie CSRF не установлен): /users/api/update-profile/
[15/дек. /2024 г. 20:53:02] "POST /users/api/update-profile/HTTP/1.1" 403 2855
#settings.py
CSRF_COOKIE_HTTPONLY = False # Allow JavaScript to read the CSRF cookie
#CSRF_USE_SESSIONS = False
CSRF_COOKIE_SAMESITE = 'Lax'
CSRF_COOKIE_SECURE = False
# Ensure these are set correctly
SESSION_COOKIE_SAMESITE = 'Lax' # or 'None' for cross-site
CSRF_COOKIE_SAMESITE = 'Lax' # or 'None' for cross-site
MIDDLEWARE = [
'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_CREDENTIALS = True
#CORS_ALLOW_ALL_ORIGINS = True
CORS_ALLOWED_ORIGINS = [
#"http://localhost",
#"http://127.0.0.1",
"http://localhost:3000"
]
CORS_ALLOW_METHODS = [
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
]
CORS_ALLOW_HEADERS = [
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
]
#views.py
@login_required
def update_profile(request):
if request.method == 'POST':
user = request.user
print('user', user)
# Gender validation
if 'gender' in request.POST:
gender = request.POST.get('gender')
if gender in dict(user.gender_choices):
user.gender = gender
# Username validation
if 'username' in request.POST:
username = request.POST.get('username')
if len(username)
Подробнее здесь: https://stackoverflow.com/questions/792 ... go-next-js
Запрещено (файл cookie CSRF не установлен). Django, Next.js ⇐ Python
Программы на Python
-
Anonymous
1734304943
Anonymous
Я пытаюсь отправить данные на сервер Django, чтобы обновить профиль пользователя из приложения Next.js;
У меня есть аналогичная настройка с другими маршрутами, и они работают нормально ,
но здесь я получаю следующую ошибку:
Запрещено (файл cookie CSRF не установлен): /users/api/update-profile/
[15/дек. /2024 г. 20:53:02] "POST /users/api/update-profile/HTTP/1.1" 403 2855
#settings.py
CSRF_COOKIE_HTTPONLY = False # Allow JavaScript to read the CSRF cookie
#CSRF_USE_SESSIONS = False
CSRF_COOKIE_SAMESITE = 'Lax'
CSRF_COOKIE_SECURE = False
# Ensure these are set correctly
SESSION_COOKIE_SAMESITE = 'Lax' # or 'None' for cross-site
CSRF_COOKIE_SAMESITE = 'Lax' # or 'None' for cross-site
MIDDLEWARE = [
'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_CREDENTIALS = True
#CORS_ALLOW_ALL_ORIGINS = True
CORS_ALLOWED_ORIGINS = [
#"http://localhost",
#"http://127.0.0.1",
"http://localhost:3000"
]
CORS_ALLOW_METHODS = [
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
]
CORS_ALLOW_HEADERS = [
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
]
#views.py
@login_required
def update_profile(request):
if request.method == 'POST':
user = request.user
print('user', user)
# Gender validation
if 'gender' in request.POST:
gender = request.POST.get('gender')
if gender in dict(user.gender_choices):
user.gender = gender
# Username validation
if 'username' in request.POST:
username = request.POST.get('username')
if len(username)
Подробнее здесь: [url]https://stackoverflow.com/questions/79283189/forbidden-csrf-cookie-not-set-django-next-js[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия