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 }}'}
                        });

                    });

 

posted @ 2015-09-07 09:14  雅思敏  阅读(202)  评论(0编辑  收藏  举报