Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как добавить токен "csrf" в динамически создаваемую html форму? [RSS Feed]

#1 Авг. 28, 2011 15:13:30

Kotakota
От:
Зарегистрирован: 2011-06-06
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить токен "csrf" в динамически создаваемую html форму?

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



Офлайн

#2 Авг. 29, 2011 07:44:06

minotavr_x86
От:
Зарегистрирован: 2010-05-21
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить токен "csrf" в динамически создаваемую html форму?

Вот такой вариант для 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>



Офлайн

  • Начало
  • » Django
  • » Как добавить токен "csrf" в динамически создаваемую html форму?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version