Найти - Пользователи
Полная версия: Как добавить токен "csrf" в динамически создаваемую html форму?
Начало » Django » Как добавить токен "csrf" в динамически создаваемую html форму?
1
Kotakota
Привет.
Необходимо добавить токен csrf в динамически создаваемую на jQuery форму.
Далее эта форма будет привязана к iframe и отправлена методом POST, собственно для чего и нужен CSRF.
Как это правильно реализовать?
У меня есть несколько вариантов:
1. Убрать проверку CSRF с помощью декоратора “@csrf_exempt” перед вьюхой, которая будет обрабатывать URL запроса.
2. Забирать csrf токен с помощью JSONP технологии (например, по URL: example.com/get_token), и подставлять его в форму.
3. Читать куку (getCookie('csrftoken')) и оттуда брать значение csrf токена.
Думаю, что первый вариант не очень хороший, поэтому рассматриваются варианты 2 и 3.
А какие у Вас есть мысли по этому вопросу?
minotavr_x86
Вот такой вариант для ajax.
var csrf_token = $('input[name = "csrfmiddlewaretoken"]:first').val();
$("body").bind("ajaxSend", function(elm, xhr, s){
if (s.type == "POST") {
xhr.setRequestHeader("X-CSRFToken", csrf_token);
}
});

<div class='system'>
{% csrf_token %}
</div>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB