Почему request.POST.get всегда пуст в Django при использовании с react?
Я использую react с Django framework, а не Django rest framework, и когда я отправляю post запрос со стороны react, request.POST.get('token', '')
всегда пустой.
token = request.POST.get("token")
Я пробовал многое, например changing content type
использовать request.data
вместо этого, но ничего не помогает.
Может ли кто-нибудь сказать, почему я не получаю переменную post?
EDIT Это js-код, который используется для отправки почтового запроса.
axios({
method: 'post',
responseType: 'json',
url: `/auth/login/`,
data: {
'token':token,
'username':'yesy'
},
headers:{
'X-CSRFToken':csrf,
"Content-Type": "application/x-www-form-urlencoded",
}
})
.then((response:any) => {
console.log(response)
})
.catch((error:any) => {
//error.data.error.message
console.log(error)
});
После некоторого ломания головы мне удалось найти ответ на этот вопрос, Если кто-нибудь столкнется с этой проблемой, просто используйте FormData
с multipart.
const formData = new FormData();
formData.append('token', token);
axios({
method: 'post',
responseType: 'json',
url: `/auth/login/`,
data: formData,
headers:{
'X-CSRFToken':csrf,
"Content-Type": "multipart/form-data",
}
})
.then((response:any) => {
console.log(response)
})
.catch((error:any) => {
//error.data.error.message
console.log(error)
});
Это решило мою проблему, следовательно, может решить и другие.