getWechatCode:function(){
var that = this;
var url = encodeURIComponent('https://5.jimth.com/#/account/apply');
var state = Math.random();
location.href = 'https://open.weixin.qq.com/connect/qrconnect?appid='+that.appID+'&redirect_uri='+url+'&response_type=code&scope=snsapi_login&state='+state+'#wechat_redirect';
},
效果图如下:
可是,如果扫码后,跳转到线上,之后的接口如果有问题,如通过扫码获取的code去解密,出了问题,线上调试非常不方便。如果将上面的url换成本地,那么又得不到二维码:

这时,可以借助Nginx和hosts将线上地址代理到本地,也就是虽然访问的是线上,实际上调用的是本地,所以,上面的url不用换成线下,这样,仍然能够正常扫码,“欺骗”了微信。扫码之后,也可以直接在本地进行调试:
1、以“https://5.jimth.com/”为例,在Nginx配置文件如下,其中server_name就是线上域名,location的root就是项目本地目录,proxy_pass是本地接口地址:
server {
listen 80;
server_name 5.jimth.com;
location / {
root H:/works/dist;
index index.html index.htm;
}
location /proxy/ {
proxy_pass "http://60.173.242.198:8083/";
}
2、hosts加入下面这句:
127.0.0.1 5.jimth.com经过上面的两步修改,再重启Nginx,再访问线上地址 5.jimth.com,实际上就是访问本地,接口也是调用的本地,方便了调试,也可以正确的显示二维码进行扫码了。
