[英]Django Rest Framework says CSRF verification failed despite CSRF token is included in axios POST header
我有以下反应代码来调用 django rest 框架 API:
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 请求的正文中发送 header 是不正确的。
以下应该是有效的 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);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.