vue以get方式传递包含特殊字符的参数
vue以get方式传递包含特殊字符的参数
正常情况下vue支持以get方式将参数拼接在url地址后面进行传递
但是当参数包含特殊字符时,可能会导致参数丢失,后端接收不到对应参数
笔者遇到的是以get方式传递#开头的参数,参数丢失,后端接收不到对应参数
解决方法
- 将数据存储在 form 对象里面进行传输
let form = new FormData();
// form对象以键值对方式存储数据,key对应属性,value对应属性值
form.append("groupCode", data.groupCode);
form.append("status", data.status);
const url = "/nirvana/wizardStyleGroups/updateStatus";
this.$axios.get(url, form).then((res) => {
if (res.data.code == 200) {
this.$message.success("成功");
} else {
this.$message.error(res.data.msg);
}
});
- qs.stringify()参数格式化
// 相当于 this.$exportFile.exportByGet("nirvana/wizardProductXmlCodes/exportExcel?keyword"+this.keyword);
let param={keyword:this.keyword}
let url="nirvana/wizardProductXmlCodes/exportExcel?";
this.$exportFile.exportByGet(url+qs.stringify(param));
qs.stringify()作用参考文档:https://www.cnblogs.com/ichenchao/articles/11549304.html
注意:当请求方式是get时,后端接收参数要通过基本类型来接收,否则接收不到;如果后端需要通过实体类型来接收,则前端需要以post方式发送请求
记得快乐