get请求入参是数组对象,但是被转义了

问题遇到的现象和发生背景

get请求入参需要是数组对象,控制台打印时正常,拼成URL时被转义了

用代码块功能插入代码,请勿粘贴截图

device=[%7B%22pn%22:%22Y0020020213009%22,%22sn%22:%22Y0020020213009092001%22,%22devcode%22:2361,%22devaddr%22:1%7D]

需要效果

device=[{"pn":"D0022210356540","devcode":4662,"sn":"A2262059992","devaddr":1}]&action=exportDeviceRangeReport

使用的方法

// 参数转为url编码
param = {
action : 'exportDeviceRangeReport',
source: 1,
// plantid: this.params[0].pid,
i18n: this.$lang.currentLang,
sdate: this.$filter.formatDate(this.datevalue[0]),
edate: this.$filter.formatDate(this.datevalue[1]),
device: JSON.stringify(device2)

        }

this.$request.get(action, param)
.then((res) => {}
//参数转义
function transferUriStr (obj) {
return qs.stringify(obj).replace(/%20/g, '+').replace(/%2B/g, '+').replace(/%3A/g, ":").replace(/%2C/g, ",").replace(/%40/g, '@').replace(/%24/g, '$').replace(/%26/g, '&').replace(/%3D/g, '=').replace(/%28/g, '(').replace(/%29/g, ')')
}
//封装get方法请查看图片

img

有些符号在URL中是不能直接传递的,所以会被转成ASCII码

get确实会被转,可以考虑用post