Django REST framework 框架下 CSRF 问题

原文链接

要在 REST 框架使用 POSTPUT 等方法,需要在 HTTP 头的 X-CSRFToken 带上 CSRF 信息。

我们的做法是先引入一个 Cookie 库:https://github.com/js-cookie/js-cookie/

然后添加上以下代码:

var csrftoken = Cookies.get('csrftoken')

function csrfSafeMethod(method) {
    // these HTTP methods do not require CSRF protection
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}

jQuery.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
            xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    }
});

你可能感兴趣的:(Django REST framework 框架下 CSRF 问题)