首页 > django 中的CSRF_COOKIE_SECURE设为True之后,ajax返回403错误

django 中的CSRF_COOKIE_SECURE设为True之后,ajax返回403错误

为什么把django 中的CSRF_COOKIE_SECURE设为True之后,ajax返回403错误?

即使添加如下代码也没有用?
var csrftoken = $('input[type=hidden][name=csrfmiddlewaretoken]').val();
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRFToken', csrftoken);
}
});

之前没有问题,今天突然发现这个问题。。。
求指导。

是不是其它的设定导致了这个问题?


https://docs.djangoproject.com/en/dev/ref/contrib/csrf/
下面是django文档中的例子,你可以先试试,而且在django的服务器端,编码也要有相应的修改

    function csrfSafeMethod(method) {
    // these HTTP methods do not require CSRF protection
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
    }
    $.ajaxSetup({
    crossDomain: false, // obviates need for sameOrigin test
    beforeSend: function(xhr, settings) {
        if (!csrfSafeMethod(settings.type)) {
            xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    }
    });
    from django.views.decorators.csrf import csrf_protect
    from django.shortcuts import render

    @csrf_protect
    def my_view(request):
        c = {}
        # ...
        return render(request, "a_template.html", c)
【热门文章】
【热门文章】