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方法请查看图片
有些符号在URL中是不能直接传递的,所以会被转成ASCII码
get确实会被转,可以考虑用post