我在这里使用答案(JavaScript post request like a form submit)在浏览器中的JavaScript中进行发布。但是Django CSRF检查失败,因为模板中的表单中包含{%csrf_token%}。怎么做?我应该添加以下代码吗?
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", 'csrfmiddlewaretoken');
hiddenField.setAttribute("value", '{{ csrf_token }}');
form.appendChild(hiddenField);
欢迎任何提示,建议和意见。谢谢
最佳答案
如果要使用ajax提交表单,则还必须提交csrf令牌值。
举个例子。
$.ajax({
type: "POST",
url: url,
data:{
'csrfmiddlewaretoken':$('input[name="csrfmiddlewaretoken"]').val(),
},
success: function(response){
}
});
或者您可以将ajax数据中的序列化表格发送为
data: $("#form").serialize(),