我正在尝试使用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);
})
}
答案 0 :(得分:0)
基本上,我以错误的方式访问数据:
从此:
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'
})