Django REST framework 框架下 CSRF 问

2018-04-26  本文已影响195人  SingleDiego

原文链接

要在 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);
        }
    }
});
上一篇 下一篇

猜你喜欢

热点阅读