url传参出现Uncaught URIError: URI malformed错误解决
前言今天发现一个bug,平时ok的功能突然报错了,重复测了好几次发现是数据的问题,正常的数据里面没有百分号%,今天出现bug的数据里面有百分号%原因url加密传参有时候会出现Uncaught URIError: URI malformed的错误,这是因为你的url中包含了“%”字符,浏览器在对“%”执行decodeURIComponent时报错,正确的解决是将%全部替换为%25再进行传输解決办法u
·
前言
今天发现一个bug,平时ok的功能突然报错了,重复测了好几次发现是数据的问题,正常的数据里面没有百分号%,今天出现bug的数据里面有百分号%
原因
url加密传参有时候会出现Uncaught URIError: URI malformed
的错误,这是因为你的url中包含了“%”字符,浏览器在对“%”执行decodeURIComponent时报错,正确的解决是将%全部替换为%25再进行传输
解決办法
方法1
urlStr.replace(/%/g, '%25');
方法二
既然知道是因为decodeURIComponent 报错,那我们就先把字符串转成encodeURIComponent
let orderData = JSON.stringify(data)
let newStr = orderData.replace(/%/g, '%25');
uni.navigateTo({
url: "/pages-cart/cart-order/index?orderData=" + encodeURIComponent(newStr)
})
// 接受页面
onLoad: function (options) {
let optionData = decodeURIComponent(options.orderData )
this.orderData = JSON.parse(optionData);
},
更多推荐
所有评论(0)