VUE 用 axios 发送 POST请求出现的问题
·
VUE发送 axios POST请求出现的问题
报错内容:
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
其实报这个错是json.loads(request.body)的时候出问题了(但是用postman请求就没有问题,所以排除后端的问题),出现这个问题的场景有很多
- 网上最多的是数据格式的问题(这个就不细说了,随便都能找到解决方法)
我的是前端传输数据出了问题(axios传输到后台的时候出了问题)
问题描述:
因为前端axios发送POST有两种方式
- 一种是
params - 一种是
data
我的问题就是使用了params方式,导致数据拼接在POST链接后面了,取不到;看代码
解决问题前 前端代码:
使用的axios的params方式发送POST请求
解决问题前 后端代码:
两种方式打印获取request的数据都是空的
- request.POST.GET
- request.body
因为请求把数据拼接在POST链接后面了

问题解决:
后面阅读axios文档,发现params方式和data方式发送POST请求差距很大的,不信你看
解决问题后 前端代码:
axios发送data数据
解决问题后:后端代码

可以看到前端axios以data方式发送数据后,后端打印request.body后取到数据了,然后再是json.loads取到数据才不会报错,之前是因为body里面数据为none,所以就报错了。
PS:初学全栈,对前端不是很熟悉,如果写的有问题,欢迎批评!!!
更多推荐


所有评论(0)