url-参数-是url获取时参数丢失

51次阅读

共计 567 个字符,预计需要花费 2 分钟才能阅读完成。

引用场景:
一条链接带数个参数,其中有参数是一条 url(也带有参数),这样就会造成获取参数丢失。
例如
url: https://www.baidu.com/?params…://www.baidu.com/?err=ppp&lll=xxxx

获取参数

 // 截取 url 对应的参数
    getUrlParam (url) {
      url = url == null ? window.location.href : url
      const search = url.substring(url.lastIndexOf('?') + 1)
      const obj = {}
      const reg = /([^?&=]+)=([^?&=]*)/g
      search.replace(reg, (rs, $1, $2) => {const name = decodeURIComponent($1)
        let val = decodeURIComponent($2)
        val = String(val)
        obj[name] = val
        return rs
      })
      console.log('url', obj)
      return obj
    }

获取结果

这是个错误的结果,
正确结果是

解决办法
通过 encodeURIComponent 对参数 params03 进行编码,
操作:
let href = encodeURIComponent(‘https://www.baidu.com/?err=pp…’)

正文完
 0