AJAX配置csrf

Posted 阿强Wwlt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AJAX配置csrf相关的知识,希望对你有一定的参考价值。

// 从COokie取CSRF TOKEN的值
function getCookie(name) {
    var cookieValue = null;
    if (document.cookie && document.cookie !== ‘‘) {
        var cookies = document.cookie.split(;);
        for (var i = 0; i < cookies.length; i++) {
            var cookie = jQuery.trim(cookies[i]);
            // Does this cookie string begin with the name we want?
            if (cookie.substring(0, name.length + 1) === (name + =)) {
                cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                break;
            }
        }
    }
    return cookieValue;
}
var csrftoken = getCookie(csrftoken);


// 将CSRF TOKEN值 设置到AJAX的请求头中,后续的AJAX请求就会自动携带这个CSRF TOKEN
function csrfSafeMethod(method) {
  // these HTTP methods do not require CSRF protection
  return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}

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

 

以上是关于AJAX配置csrf的主要内容,如果未能解决你的问题,请参考以下文章

django csrf配置实例

CSRF与AJAX

spring security4.2 配置CSRF防御场景

Ajax CSRF 403 禁止代码点火器

Django:AJAX + CSRF POST 给出 403

jQuery + AJAX + Django = CSRF ? [复制]