这是一个object对象,现在将这个对象通过url传递到另一个页面
var data={id:1,name:'张三'}
页面1
1. 将object对象转换成json字符串
let json = JSON.stringify(data);
3. 将json字符串作为url进行编码
let jsons=encodeURI(json);
4. 将编码后的json字符串拼接到url后
'http://localhost:8081/test_war_exploded/index.html?data='+jsons
页面2
1. 先获取url路径
let search = location.search;
2. 对url路径进行解码,不进行解码很大概率会出现乱码
let url=decodeURI(search);
3. 将url中的参数转换成json对象
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
4. 最后输出的结果
{data:'{“id”:1,"name":"张三"}'}
5. 使用JSON.parse转化Object内的data数据为json对象
let jsonObj=JSON.parse(theRequest.data);
6. 现在再打点调用
id=jsonObj.id;
ps:
如果url后参数不是对象是字符串就不用执行第五步,可以直接调用
如果第四步输出结果为{data:'{“id”:1,"name":"张三"}'
就需要执行第五步
如果结果为{id: '1', name: '张三'}
就不需要,直接调用即可
评论区