美文网首页
django CSRF Failed: CSRF token m

django CSRF Failed: CSRF token m

作者: 开始懂了90 | 来源:发表于2021-08-30 17:13 被阅读0次

    jango 提交表单报错如下:

    django CSRF Failed: CSRF token missing or incorrect

    解决办法:

    1.  打开setting.py 关于之前的csrf注释

    MIDDLEWARE = [

        'django.middleware.csrf.CsrfViewMiddleware',

    ]

    2. 在form 表中中添加{%csrf_token %}

    <form class="form-horizontal" id="addCrontabForm">

                      {%csrf_token %}

    </form>

    3.  如果通过ajax发送的post的请求 还需增加script 配置

    $(document).ajaxSend(function(event, xhr, settings) {

    function getCookie(name) {

    var cookieValue =null;

            if (document.cookie &&document.cookie !='') {

    var cookies =document.cookie.split(';');

                for (var i =0; i < cookies.length; i++) {

    var cookie =jQuery.trim(cookies[i]);

                    // Does this cookie string begin with the name we want?

                    if (cookie.substring(0, name.length +1) == (name +'=')) {

    cookieValue =decodeURIComponent(cookie.substring(name.length +1));

                        break;

                    }

    }

    }

    return cookieValue;

        }

    function sameOrigin(url) {

    // url could be relative or scheme relative or absolute

            var host =document.location.host; // host + port

            var protocol =document.location.protocol;

            var sr_origin ='//' + host;

            var origin = protocol + sr_origin;

            // Allow absolute or scheme relative URLs to same origin

            return (url == origin || url.slice(0, origin.length +1) == origin +'/') ||

    (url == sr_origin || url.slice(0, sr_origin.length +1) == sr_origin +'/') ||

    // or any other URL that isn't scheme relative or absolute i.e relative.

                !(/^(\/\/|http:|https:).*/.test(url));

        }

    function safeMethod(method) {

    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));

        }

    if (!safeMethod(settings.type) &&sameOrigin(settings.url)) {

    xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));

        }

    });

    相关文章

      网友评论

          本文标题:django CSRF Failed: CSRF token m

          本文链接:https://www.haomeiwen.com/subject/hqsoiltx.html