Как опубликовать WTForm через ajax, используя защиту CSRF в простом Javascript - PullRequest
0 голосов
/ 29 декабря 2018

Я обрабатываю свои формы с помощью flask-wtf, отправляю данные в мою базу данных с помощью запроса POST для проверки и, наконец, перенаправляю пользователя на другой маршрут, и все работает как положено.В качестве следующего шага я хотел бы использовать AJAX, чтобы избежать обновления страницы без потери защиты CSRF-токен , обычно добавляемой через hidden_tag в шаблоне через Jinja2.

В документации flask-wtf предоставленное решение использует jQuery.Я оглянулся, но не смог найти фрагмент, который использует обычный Javascript для достижения того же результата.В частности, хотя я знаю, как использовать метод XmlHttpRequest в JS, я не могу понять, как включить в него токен CSRF.

Вот решение 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);
            }
        }
    });

...