Я довольно новичок в использовании ReactJS с Django.
То, что я хочу, просто. Я хочу отправить запрос на создание аккаунта.
Front-End сервер и Back-End сервер полностью разделены. Они общаются только с AJAX, и ничего более, они даже не находятся на одном сервере.
Я пробовал несколько способов отправить запрос на создание аккаунта, но ничего не получалось.
Вот что я пробовал в JavaScript:
Добавить опцию с именем withCredentials:true
для axios. Это добавляет cookie в заголовок, но django говорит: «csrftoken неверен или не установлен».
Установите следующее:
axios.defaults.xsrfHeaderName = "X-CSRFToken";
axios.defaults.xsrfCookieName = 'csrftoken';
-> это не дает никаких эффектов.
Установите следующее:
axios.defaults.headers.common = {
'X-Requested-With': 'XMLHttpRequest',
'X-CSRF-TOKEN' : (document.cookie).replace("csrftoken=", "")
};
-> это заставляет axios делать только запросы метода "option". но я не знаю почему и, конечно, это не работает.
Вот что я изменил в настройках Django.py:
CSRF_COOKIE_NAME = "X-CSRFToken"
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_EXPOSE_HEADERS = (
'Access-Control-Allow-Origin: *',
)
и, конечно, я добавил @ensure_csrf_cookie чуть выше представления, которое делает некоторые вещи регистрирующими.
Есть ли способ это исправить? Я трачу много времени на это. Мне действительно нужна твоя помощь. спасибо.