在使用axios发送post请求的时候,我们将需要发送的数据封装为一个obj对象,但是在浏览器报错。
意思是必填的传输数据不正确,可能是没有填或者是错误。可以引入jQuery,或者使用node环境中自带的qs来进行一个数据转换。
get方法报以上错误请看文章最后
方法一:通用解决方法:使用jQuery引入
在html界面引入jQuery
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
原代码:
mounted() {
var obj = {
page: this.page,
pageSize: this.pageSize,
};
this.$axios.post("/customer/query", obj).then((res) => {
console.log(res);
console.log(res.data.data);
});
},
修改后,使用$.param()转换
mounted() {
var obj = {
page: this.page,
pageSize: this.pageSize,
};
this.$axios.post("/customer/query", $.param(obj)).then((res) => {
console.log(res);
console.log(res.data.data);
});
},
再次尝试,就能获取到数据
方法二:使用npm搭建的vue-cli脚手架,已有node环境,使用自带qs。
在vue页面的srcipt标签内引入qs
import qs from "querystring";
用qs.stringify()将数据转换
this.$axios.post("/customer/query", qs.stringify(obj)).then((res)=>{}
get方法出现以上错误时,可以先将所有传输的数据存放在一个object中,在get请求中发送obj即可。