• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Y-wee
博客园    首页    新随笔    联系   管理     

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方式发送请求

记得快乐
posted @ 2021-09-27 10:00  Y-wee  阅读(1913)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3