CSRF令牌丢失或不正确(Django)

时间:2018-11-09 23:03:50

标签: javascript html django csrf

我的表单是这样创建的

<form class="k-form" id="k_form" novalidate="novalidate">{% csrf_token %}

,稍后在html中关闭。

这是我的AJAX帖子:

    $('#submit').on("click",function(e){
    var ready_to_submit = true;
    if(ready_to_submit){
        e.preventDefault();
        var local_data = new Object();
        local_data.csrfmiddlewaretoken = $('input[name=csrfmiddlewaretoken]').val();

        console.log(local_data.csrfmiddlewaretoken);
        var json_data = JSON.stringify(local_data);

        console.log(json_data);
        $.ajax({
            type:'POST',
            url:'/create_new_group/create_group/',
            data:json_data ,
            success:function(data){
                    if(data.status == 1){
                            //success!
                            console.log('Success!')
                    }
                    else if(data.status == 2){
                            //failed
                            console.log('Failed!')
                    }
            }
    });

    }
});

这将返回Forbidden(CSRF令牌丢失或不正确。):在我的Django服务器上为/ create_new_group / create_group /。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

尝试添加到您的导入中:

from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator

以及您的查看功能上方:

@method_decorator(csrf_exempt, name='dispatch')

它解决了我的“禁止”(CSRF令牌丢失或不正确的情况。):