jquery-django项目的csrf保护导致ajax请求返回403

前言

django项目默认就启动了csrf保护,这样子可以保证网站的安全,但是我们有些页面是需要使用ajax进行请求的,怎么破呢?

jquery-django项目的csrf保护导致ajax请求返回403


jquery.cookie

jquery.cookie是一个简单的、轻量级的jQuery插件读、写和删除cookie。

在页面添加脚本路径和ajax设置:

<script type="text/javascript" src="/static/js/jquery.min.js"></script>

<script type="text/javascript" src="/static/js/jquery.cookie.js"></script>

<scripts>

var csrftoken = $.cookie('csrftoken');

function csrfSafeMethod(method) {

// these HTTP methods do not require CSRF protection

return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));

}

$.ajaxSetup({

beforeSend: function(xhr, settings) {

if (!csrfSafeMethod(settings.type) && !this.crossDomain) {

xhr.setRequestHeader("X-CSRFToken", csrftoken);

}

}

});

</scripts>

jquery-django项目的csrf保护导致ajax请求返回403

相关推荐