JavaScript拿到并解析Base64编码

JavaScript 2020-04-10 3626 0
15:30:22

JavaScript拿到并解析Base64编码

微信授权时序图镇楼

最近对接了PC网站微信登录和绑定微信,在写的过程中遇到两个问题,微信在授权成功后,会重定向一个页面,在这个页面会带有一些参数,我们需要拿到这些参数来做进一步的业务逻辑处理。

在这里我们可以用两个方法来实现(拿到地址栏参数并解析)的效果:

拿到base64参数

  1. function getQueryVariable(variable)
  2. {
  3.        var query = window.location.search.substring(1);
  4.       //widow的Location对象里面的search属性,返回一个URL的查询部分
  5.      //substring(1)可以去掉参数的'?'
  6.        var vars = query.split("&");
  7.     //参数在'&'处分割,字符串转为数组
  8.        for (var i=0;i<vars.length;i++) {
  9.                var pair = vars[i].split("=");
  10.               //for循环拿到url参数,在'='号处分割,字符串转为数组
  11.                if(pair[0] == variable){return pair[1];}
  12.               //如果=号左边的参数名字等于传入的参数名字,return出去
  13.        }
  14.        return(false);
  15. }

解析base64参数

  1. function b64DecodeUnicode(str) {
  2.     return decodeURIComponent(atob(str).split('').map(function(c) {
  3.         return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
  4.     }).join(''));
  5. }
效果

上面解析后拿到的是字符串,我们通过JSON.parse方法转为对象,如下图:

JavaScript拿到并解析Base64编码

 

完成

 

发表评论