LINUX.ORG.RU

flask CSRF missing

 , ,


1

1

Пример приложения.

app.py: https://pastebin.com/0Xhyer50

index.html: https://pastebin.com/nsRL5XrR

Почему не передается CSRF токен? При отправке post запроса (Нажать json). Что нужно сделать, чтоб заработало? Или этот токен надо передавать, как то в ajax запросе? Спасибо.


А нафига форму слать jQuery, шли дефолтом. CSRF токен надо слать в любых запросах, отсылающие/изменяющие данные, в т.ч. ajax

menangen ★★★★★
()
Ответ на: комментарий от menangen

на jquery сделан другой функционал(это пример), почему бы и нет. нашел вот такое, работает:

<script type="text/javascript">
    var csrf_token = "{{ csrf_token() }}";

    $.ajaxSetup({
        beforeSend: function(xhr, settings) {
            if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
                xhr.setRequestHeader("X-CSRFToken", csrf_token);
            }
        }
    });
</script>

Я правильно понял, что эта функция добавляет во все post запросы (header c csrf_token)? Т.е. можно не добавлять в форму {{ form.hidden_tag() }}?

bikes
() автор топика
Последнее исправление: bikes (всего исправлений: 1)
Ответ на: комментарий от bikes

ну если у тебя формы обрабатывает js, тогда тебе нужно добавлять либо таким образом что ты нашел, либо:

https://pastebin.com/GgR7VETw

То есть ты в форме задаешь свой скрытый тэг с csrf и при submit он ловит все инпуты формы

noname_user ★★★
()
Ответ на: комментарий от bikes

В разных проектах я видел по разному, все зависит от ситуации

noname_user ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.