h5嵌入企业微信,获取重定向后的code值传给后端,再拿到返回值(vue)
需求:获取当前登录用户id,文档中在服务端api里有相应介绍,如下图前端获取重定向后的值:<script>function getQueryVariable(variable){var query = window.location.search.substring(1);var vars = query.split("&");for (var i=0;i<va
·
需求:获取当前登录用户id,文档中在服务端api里有相应介绍(所以这里一定要后端配合完成,而且涉及到企业id和密码所以更需要通过后端转发),如下图
前端通过 vue 获取重定向后的值(理论上作为单页面应用,在 vue 的任何一个页面都是能拿到重定向后的url参数),我是在app.vue
里获取的,代码如下:
<script>
//获取重定向后的url中的参数值,要将方法写在created生命周期函数里
created(){
this.routerBtn();
this.getCodeAnUserId();
},
methods: {
getQueryVariable(variable){
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){
return pair[1];
}
}
// return(false);
},
getCodeAnUserId() {
let _this = this;
// let nowCode = this.$route.query.code;
//因为只能在手机端测试,所以可以通过alert查看打印返回内容,查看是否走进某个方法,判断是否触发ajax请求
// alert(this.getQueryVariable("code"))
axios
.get("/weixin/getUserInfo?code=" + this.getQueryVariable("code"))
.then(function(response) {
// alert(JSON.stringify(response))
let codeRes = response.data.result;
let nowUserId = codeRes.userId;
window.localStorage.setItem("userId", nowUserId);
if(nowUserId){
this.routerBtn()
}
})
.catch(function(error) {
_this.$message({
type: "error",
message: "传code接口返回失败" + error,
});
});
},
</script>
总结1:原生能做的,vue肯定能实现,如果没成功肯定方法不对,所以不要轻易改变编译后的文件;
总结2:一步一步下断点,电脑上调不了,就通过alert弹出查看与逻辑预期是否一致,然后再往下打印;
总结3:最好跟后端要到部署的权限和地址,通过 xshell 和 xftp 工具,每次调试自己部署,方便快捷还不用一遍遍麻烦后端。
欢迎关注公众号:【抓住重点】,获取更多编程周边技能,与博主一起进步
更多推荐
已为社区贡献3条内容
所有评论(0)