/**
* 根据参数名 获取 URL 路径中的参数
* @param {String} name 要读取的参数名称
*/
function getUrlParam (name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
let url = window.location.href.split('#')[0]
let search = url.split('?')[1]
if (search) {
var r = search.substr(0).match(reg)
if (r !== null) return unescape(r[2])
return null
} else {
return null
}
}
//getUrlParam('code') 调用一下就能拿到 code 结果,然后用这个 code 去调后台的接口让后台去微信后台拿openID。
function wxAuthorize() {
let link = window.location.href;
// let params = this._getUrlParams(link); // 地址解析
//console.log(link);
let params =getUrlParam('code'); // 地址解析
console.log(params);
// 已经授权登录过的就不用再授权了
// if (store.state.token) return;
// 如果拿到code,调用授权接口,没有拿到就跳转微信授权链接获取
// if (params.code) {
if (params) {
console.log("121212");
api.wxAuth(params.code); // 调用后台接口,授权
}else {
console.log("22221");
let appid = 'xxxsdfa1';
//1.使用encodeURIComponent以及JSON.stringify()方法对对象进行字符串化和编码,这样可以控制url参数的长度,参考示例代码(uni-app书写方式,微信小程序自己改。)
let uri = encodeURIComponent(link);
//2.接受信息的页面使用JSON.parse()以及decodeURIComponent()接收和解码参数。
//snsapi_base //snsapi_base scope = snsapi_base(不弹出授权页面,直接跳转,只能获取用户 openid )。
//snsapi_userinfo 弹出
let authURL = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_base&state=123#wechat_redirect`;
window.location.href = authURL;
}
}
这个跳转得不到code 的值 求大神解决
jtshushu (作者)
你好已经取得了 谢谢 上面是正确的
2019-12-02 10:08