1. 报错原因:
如果对象的参数或数组的元素中遇到地址,地址中包括?、&这些特殊符号时,对象/数组先要通过JSON.stringify转化为字符串再通过encodeURIComponent编码;接收时,先通过decodeURIComponent解码再通过JSON.parse转换为JSON格式的对象/数组。
2. 正确的代码如下:
// 传参时
let newObj = encodeURIComponent( JSON.stringify( obj ) );
// 接收参数时
let { newObj } = options;
let data = JSON.parse( decodeURIComponent( newObj ) );