js 原生中,利用url 地址传参,有时会遇到乱码的问题

最近,在js原生开发中,利用url地址传参,有时会遇到乱码的问题,以下针对这个问题进行详解。
1.列表页传参

 // url传参  encodeURI()编码
      var Parameter = '供水设备系列';
      $('.parBd ul li a').click(function () {
        window.location.href =
          './product_detail.html?location=' + encodeURI(Parameter);
      });

2.详情页接收url的参数,并且解析:decodeURI()解码

  // 获取url 传参
      function GetRequest() {
        var url = decodeURI(location.search); //获取url中"?"符后的字串 并且解析Url编码
        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]);
          }
        }
        return theRequest;
      }
      var locationVal = new Object();
      locationVal = GetRequest();
      var MatchId = locationVal['location'];
      console.log(MatchId);//获取到参数值

解释一下上面的代码:
1.decodeURI()和encodeURI()用于解码和编码URL的俩个JS函数
2.substr(1) 相当于 substring(1,str.length)
3.unescape()对不是英文字母进行解码
这样参数就拿到了~~~~,可以用这个参数调接口了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容