@BeatTimy
Web Developer

Ошибка с CSRF токеном из приложения на vue в django?

Мне необходимо передать POST запрос из vue в django. Я столкнулся с ошибкой: 5c7d09deec407882366629.png5c7d09eacbb5d521995091.png
Запрос передаю с помощью axios:
import axios from 'axios';
axios.defaults.xsrfHeaderName = "X-CSRFToken";
axios.defaults.xsrfCookieName = "csrftoken";
axios.defaults.withCredentials = true;
axios({
        method: 'post',
        url: 'http://127.0.0.1:8000/test-result/',
        data: {
          userAnswers: this.userAnswers
        },
      });

В settings.py у меня установлен corsheaders:5c7d0a80cdd1f122284420.png
Так же заданы настройки:
ALLOWED_HOSTS = ['*']

CSRF_COOKIE_NAME = "csrftoken"

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_EXPOSE_HEADERS = (
    'Access-Control-Allow-Origin: *',
)


Перепробовал огромное количество способов, описанных в интернете и ничего не помогло. Возможно моя ошибка связана с чем то другим?
  • Вопрос задан
  • 613 просмотров
Пригласить эксперта
Ответы на вопрос 1
@IKMOL
Вы путаете CSRF с CORS.
CORS - Вы настроили, но не CSRF.
Правильным решением Вам нужно сделать API (с помощю DRF к примеру) и авторизацию через токен, если это вам необходимо.
Еще вариант почитать документацию DjangoCross Site Request Forgery protection - где указано как это сделать, ну и на крайняк (не рекомендуется) отключить CSRF для этого урла
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы