Форум сайта python.su
Привет.
Необходимо добавить токен csrf в динамически создаваемую на jQuery форму.
Далее эта форма будет привязана к iframe и отправлена методом POST, собственно для чего и нужен CSRF.
Как это правильно реализовать?
У меня есть несколько вариантов:
1. Убрать проверку CSRF с помощью декоратора “@csrf_exempt” перед вьюхой, которая будет обрабатывать URL запроса.
2. Забирать csrf токен с помощью JSONP технологии (например, по URL: example.com/get_token), и подставлять его в форму.
3. Читать куку (getCookie('csrftoken')) и оттуда брать значение csrf токена.
Думаю, что первый вариант не очень хороший, поэтому рассматриваются варианты 2 и 3.
А какие у Вас есть мысли по этому вопросу?
Офлайн
Вот такой вариант для 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>
Офлайн