Django,Ajax提交csrf_token处理

Posted 欧德派

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django,Ajax提交csrf_token处理相关的知识,希望对你有一定的参考价值。

Ajax提交数据时候,携带CSRF:
a. 放置在data中携带

<form method="POST" action="/csrf1.html">
    {% csrf_token %}
    <input id="user" type="text" name="user" />
    <input type="submit" value="提交"/>
    <a onclick="submitForm();">Ajax提交</a>
</form>
<script src="/static/jquery-1.12.4.js"></script>
<script>
    function submitForm(){
        var csrf = $(‘input[name="csrfmiddlewaretoken"]‘).val();
        var user = $(‘#user‘).val();
        $.ajax({
            url: ‘/csrf1.html‘,
            type: ‘POST‘,
            data: { "user":user,‘csrfmiddlewaretoken‘: csrf},
            success:function(arg){
                console.log(arg);
            }
        })
    }

</script>
                
b. 放在请求头中
            
<form method="POST" action="/csrf1.html">
    {% csrf_token %}
    <input id="user" type="text" name="user" />
    <input type="submit" value="提交"/>
    <a onclick="submitForm();">Ajax提交</a>
</form>
<script src="/static/jquery-1.12.4.js"></script>
<script src="/static/jquery.cookie.js"></script>

<script>
    function submitForm(){
        var token = $.cookie(‘csrftoken‘);
        var user = $(‘#user‘).val();
        $.ajax({
            url: ‘/csrf1.html‘,
            type: ‘POST‘,
            headers:{‘X-CSRFToken‘: token},
            data: { "user":user},
            success:function(arg){
                console.log(arg);
            }
        })
    }
</script>

 

以上是关于Django,Ajax提交csrf_token处理的主要内容,如果未能解决你的问题,请参考以下文章

django 页面进行ajax post提交时,页面要添加{% csrf_token %}

django 页面进行ajax post提交时,页面要添加{% csrf_token %}

django中csrf_token处理方式

[Django学习]Django基础(15)_ajax的评论提交

Django AJAX方式提交数据解决csrf验证问题

Django AJAX方式提交数据解决csrf验证问题