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请求就没有问题,所以排除后端的问题),出现这个问题的场景有很多

  1. 网上最多的是数据格式的问题(这个就不细说了,随便都能找到解决方法)
  2. 我的是前端传输数据出了问题(axios传输到后台的时候出了问题)

问题描述:

因为前端axios发送POST有两种方式

  1. 一种是params
  2. 一种是data

我的问题就是使用了params方式,导致数据拼接在POST链接后面了,取不到;看代码

解决问题前 前端代码:

使用的axios的params方式发送POST请求
在这里插入图片描述

解决问题前 后端代码:

两种方式打印获取request的数据都是空的

  1. request.POST.GET
  2. request.body

因为请求把数据拼接在POST链接后面了

在这里插入图片描述

问题解决:

后面阅读axios文档,发现params方式data方式发送POST请求差距很大的,不信你看

解决问题后 前端代码:

axios发送data数据
在这里插入图片描述

解决问题后:后端代码

在这里插入图片描述
可以看到前端axios以data方式发送数据后,后端打印request.body后取到数据了,然后再是json.loads取到数据才不会报错,之前是因为body里面数据为none,所以就报错了。

PS:初学全栈,对前端不是很熟悉,如果写的有问题,欢迎批评!!!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐