#vue.js #django-rest-framework #axios
#vue.js #django-rest-framework #axios
Вопрос:
Я пытаюсь сделать простой POST
запрос, используя axios
библиотеку внутри vuejs
, но по какой-то причине DRF
не получает параметры. Когда тот же запрос выполняется через Postman
него, он получает параметры.
VueJS
postLogin(credentials){
return axios({
method: "POST",
url: "company/login/",
data: credentials,
}).catch(err => {
return TreatErrors.treatDefaultError(err);
})
}
DRF
@action(methods=['post'], detail=False)
# Debug set here shows POST comes empty from vuejs
def login(self, request, pk=None):
if not request.POST.get('email'):
raise ValidationError({
'message': 'You must provide an email'
})
Используя Chrome DevTools
я могу четко видеть, что параметры отправляются в DRF
Что я пробовал, я пытался справиться с каждым Headers
из Postman
них и вставить его, axios
но безуспешно
postLogin(credentials){
return axios({
method: "POST",
url: "company/login/",
data: credentials,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).catch(err => {
return TreatErrors.treatDefaultError(err);
})
}
Ответ №1:
По сути, я неправильно обращался к данным:
Из этого:
if not request.POST.get('email'):
raise ValidationError({
'message': 'You must provide an email'
})
Для этого
data = request.data
if not data.get('email'):
raise ValidationError({
'message': 'You must provide an email'
})
Комментарии:
1. Большое вам спасибо за это! Благослови Бог! 🙂