Почему я получаю сообщение об ошибке 403 POST в Django? - PullRequest
1 голос
/ 13 июня 2019

Почему я получаю ошибку 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
  })
})

1 Ответ

3 голосов
/ 13 июня 2019

Вы не правильно установили {{ csrf_token }}, вам нужно вставить это в данные POST или как заголовок X-CSRFToken, но не как whole headers.См., Например, документацию Django для Установка токена для запроса AJAX .

В данных POST

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

В заголовке POST

Или мы можем включить это в заголовки сообщения, например:

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