使用jQuery发送post请求与django后台交互有一个重要的问题就是需要csrf令牌,那么解决方法就是使用js来读取cookie,然后提取其中的csrf字段即可。代码取自django官网,具体代码如下:
// using jQuery
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;
}
var csrftoken = getCookie('csrftoken');
关于这段代码我们需要了解的几个点如下:
- document.cookie可以得到当前账户的cookie信息
- document.cookie.split(';')将cookie字符串根据;进行了分隔并返回了一个数组array
- jQuery.trim()用于去除字符串两端的空白字符
- cook