У меня есть вопрос об использовании vue axios frontend и Django backend в среде cors-domain.
Мой cookie может использовать set-Cookie sessionid и csrftoken, но frontend не может получить эти параметры для сохранения в моем документе,Если я использую свой Chrome Explorer, cookie приложения пуст, но я могу найти cookie в заголовке cookie ответа.Но я не буду использовать этот csrftoken для внутренней проверки в другом POST AJAX, как я могу разрешить его для проверки?Я пробую много настроек, но не работаю с использованием функции @csrf_protect
, хотя просто удалите ее и используйте @csrf_exempt
, чтобы это работало. Как мне сохранить работу csrftoken в этой ситуации?
Спасибо.
Ниже приведены настройки, которые я использую.
настройки axios
axios.defaults.headers.get['Accept'] = 'application/json'
axios.defaults.headers.post['Content-Type'] = 'application/json'
axios.defaults.withCredentials = true
axios.defaults.xsrfCookieName = 'csrftoken'
axios.defaults.xsrfHeaderName = 'X-CSRFToken'
Настройки Django
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.gzip.GZipMiddleware',
)
CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-CSRFToken',
'X-CSRFToken',
'csrftoken',
'x-requested-with',
)
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
)
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True