django中给ajax提交加上csrf
代码来自djangoproject网站
在html中的script标签下插入下面代码
在html文档加载时候运行下面代码,并且使用$.ajaxSetup设置ajax每次调用时候传入的数据,$.ajaxSetup进行默认的设置,只需要设置一次,每次ajax调用都会使用。
注意,以下代码使用了jquery,jquery.cookies.js 库。在head部分引用这些库,才能使得正常运行。另外需注意在某些特别情况下django并没有将csrftoken设置到cookie里面。那么这代码就失去了作用。
$(document).ready( function() { //<!--using jQuery,设置ajax的头部都带有csrf验证--> var csrftoken = $.cookie('csrftoken'); function csrfSafeMethod(method) { // these HTTP methods do not require CSRF protection return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); } $.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}'} }); });