javascript - Django CSRF 检查 JavaScript post 请求(如表单提交)失败

标签 javascript jquery django forms

我正在使用此处的答案( 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 token 值。 举个例子。

$.ajax({
    type: "POST",
    url: url,
    data:{
        'csrfmiddlewaretoken':$('input[name="csrfmiddlewaretoken"]').val(),
    },
    success: function(response){
    }
});

或者您可以将 ajax 数据中的序列化表单发送为

data: $("#form").serialize(),

关于javascript - Django CSRF 检查 JavaScript post 请求(如表单提交)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37872092/

相关文章:

javascript - 这是使用 javascript 设置选择/选项框的最有效方法吗?

javascript - 使用 javascript 使用算法解决问题

javascript - 标题动画

python - 如何从外部填充 Django 模型?

javascript - 在函数内按时间间隔触发函数(coffeescript)

javascript - 使用 unstated.js 进行解构

javascript - 使用 JavaScript 通过 websockets 进行视频流传输

javascript - 谷歌地图半径圆

python - Django:根据预保存信号调整图像大小

python - 保存空条目的表单集