获取csrf随机字符串的方法:
- 通过其name=“csrfmiddlewaretoken”,来获取如:
1 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); } }); })