为什么我在 Django 收到 403 POST 请求错误?

Why I get 403 POST request error at Django?

为什么我收到 403 POST 请求错误?

我不明白这里有什么问题...

$('#id_submit').click(function(e) {
  e.preventDefault();
  var form = new FormData($('form')[0])
  form.append("image", $("input#id_image")[0].files[0])

  var data = {
    form: form,
    image_form: 123
  }

  $.ajax({
    headers: '{{ csrf_token }}',
    type: 'POST',
    data: data,
    processData: false,
    contentType: false
  })
})

您没有正确设置 {{ csrf_token }},您需要将其注入 POST 数据中,或作为 X-CSRFToken header,而不是作为 整个headers。例如参见 [​​=15=].

在POST数据

var data = {
    form: form,
    image_form: 123,
    <b>csrfmiddlewaretoken: '{{ csrf_token }}'</b>
}

在POSTheader

或者我们可以将其包含在 post header 中,例如:

$.ajax({
    headers: <b>{'X-CSRFToken':</b> '{{ csrf_token }}' <b>}</b>,
    type: 'POST',
    data: data,
    processData: false,
    contentType: false
});