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:
Однако, когда я проверяю полезную нагрузку запроса, я вижу, что X-CSRFTOken
действительно заполнено:
Тогда что здесь происходит?
Проблема в вашем запросе 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);
});