Django Rest Framework говорит, что проверка CSRF не удалась, несмотря на то, что токен CSRF включен в заголовок axios POST

У меня есть следующий код react, чтобы сделать вызов к API django rest framework:

import Cookies from 'js-cookie';
import axios from "axios";

async downloadVideowiseCSV (fromDate, toDate) {
        var url = '/stat/getStats/';
        const axiosInstance = axios.create(); 

        try {
            const response = await axiosInstance.post(url,
                {
                    data: {
                        'format': 'json'
                    },
                    header: {
                        'X-CSRFToken': Cookies.get('csrftoken')
                    }
                }
            )
        //...
}

Когда вызывается этот метод, соответствующий запрос не проходит проверку CSRF:

enter image description here

Однако, когда я проверяю полезную нагрузку запроса, я вижу, что X-CSRFTOken действительно заполнено:

enter image description here

Тогда что здесь происходит?

Проблема в вашем запросе axios, неправильно отправлять заголовок в теле HTTP запроса.

Следующее должно быть правильным запросом axios, который отделяет данные от опций ex:

const config = {
  headers: { 'X-CSRFToken': Cookies.get('csrftoken') },
};

const data = {format: 'json'}

axios.post('http://YOUR_URL', data, config)
  .then((response) => {
  console.log(response.data);
});
Вернуться на верх