我在这里使用答案(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(),

10-04 22:41