Для отправки csrf_token в Django следует использовать функцию {% csrf_token %} в шаблоне HTML.
Аннотация "csrf_token" генерирует уникальный токен защиты от подделки межсайтового запроса (CSRF) для каждого пользователя и встраивает его в вашу форму веб-страницы. Это необходимо для обеспечения безопасности передачи данных между клиентом и сервером.
Для отправки csrf_token, вам следует сделать несколько шагов:
1. Ваша форма должна быть обернута в тег {% csrf_token %}:
<form method="post"> {% csrf_token %} <!-- Остальные поля формы --> </form>
2. При отправке формы, включите csrf_token вместе с другими данными:
from django.shortcuts import render def my_view(request): if request.method == 'POST': # Получите значения полей формы, включая csrf_token my_field = request.POST.get('my_field') csrf_token = request.POST.get('csrfmiddlewaretoken') # Далее обработайте данные формы return render(request, 'my_template.html')
3. При использовании AJAX для отправки формы, вы также должны включить csrf_token в заголовок запроса:
function myFunction() { var xhr = new XMLHttpRequest(); xhr.open('POST', 'url', true); xhr.setRequestHeader('X-CSRFToken', '{{ csrf_token }}'); xhr.onload = function () { // Продолжайте обработку ответа }; // Подготовьте и отправьте данные xhr.send(formData); }
Без правильной отправки csrf_token ваш запрос будет блокирован защитой от CSRF, поэтому важно всегда включать csrf_token в формы или AJAX-запросы. Данный механизм помогает предотвратить подделку запросов от злоумышленников, защищая ваше приложение от потенциальных уязвимостей CSRF.