ajax中发送csrf的方法,(django环境)

获取csrf随机字符串的方法:

  1. 通过其name=“csrfmiddlewaretoken”,来获取如:
    document.getElementsByName("csrfmiddlewaretoken")[0] 
    2 $('input[name="csrfmiddlewaretoken"]') 或$('[name="csrfmiddlewaretoken"]') 
    3  或者获得cookie中的csrf字符串 :

    document.cookie.split('=')[1]
    "cL0Jg0YRoof8VUDvUDDONyMoAxEANALqlYY0lp3w9nIG4JVd9yioSA9r0rSbHH0F"

    或引入jQuery,后:

    $.cookie('csrftoken')
    "cL0Jg0YRoof8VUDvUDDONyMoAxEANALqlYY0lp3w9nIG4JVd9yioSA9r0rSbHH0F"

如何发送到后台

  首先,cookie中取到的字符串和获取标签值得到的字符串是不同的。

  然后发送标签字符串:

 

$('#submit').on('click',function () {
var stingCsrf=$('[name="csrfmiddlewaretoken"]').val();
var stingText=$('[name="test"]').val();

$.ajax({
url:'/csrftext/',
type:'POST',

data:{'user':stingText,'csrfmiddlewaretoken':stingCsrf},
success:function (arg) {
console.log(arg);
}

});
})

  发送cookie中csrf字符串:

$('#submit').on('click',function () {
        var stingCsrf=$.cookie('csrftoken');      {#获取csrftoken字符串#}
        var stingText=$('[name="test"]').val();
        $.ajaxSetup({
            beforeSend: function(xhr, settings) {
                    xhr.setRequestHeader("X-CSRFToken", stingCsrf); {#设置post请求头部,加入csrf字符串#}
                }
        });
        $.ajax({
            url:'/csrftext/',
            type:'POST',
            data:{'user':stingText},
            success:function (arg) {
                console.log(arg);
            }

        });
    })

  

猜你喜欢

转载自www.cnblogs.com/yuanji2018/p/9914625.html