【发布时间】:2021-12-01 17:21:06
【问题描述】:
我正在使用文档推荐的以下代码:
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$("#formTabla").submit(function(event){
event.preventDefault();
var formData = new FormData(this);
$.ajax({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
url : "{% url 'submit' %}",
type: "POST",
processData: false,
contentType: false,
data: {
"checkboxes": formData,
"datos": todosDatos
},
success: function (respuesta){
}
});
});
我收到了错误:
"Uncaught ReferenceError: csrftoken is not defined".
我明白为什么会发生这种情况,但我不知道如何解决它。我应该如何以及在哪里定义 crsftoken?
【问题讨论】:
-
您是否检查过是否正在设置标题?如果它没有被设置,那么你只需要确定为什么逻辑流没有达到你的
if条件。如果正在设置,csrftoken的值是多少? -
csrftoken没有价值,它没有在任何地方定义。因此我最初的问题是:我应该如何以及在哪里定义 crsftoken? -
谷歌搜索“如何生成 CSRF 令牌 django”让我知道:docs.djangoproject.com/en/3.2/ref/csrf
标签: javascript python jquery django ajax