我们都知道,web端和公众号,如果实现扫码获取code,必须在扫码后跳转到线上地址,调用线上接口,才能解码code,如:
1 | getWechatCode: function (){ |
4 | var state = Math.random(); |
效果图如下:
可是,如果扫码后,跳转到线上,之后的接口如果有问题,如通过扫码获取的code去解密,出了问题,线上调试非常不方便。如果将上面的url换成本地,那么又得不到二维码:
这时,可以借助Nginx和hosts将线上地址代理到本地,也就是虽然访问的是线上,实际上调用的是本地,所以,上面的url不用换成线下,这样,仍然能够正常扫码,“欺骗”了微信。扫码之后,也可以直接在本地进行调试:
1、以“http://www.5imoban.net/”为例,在Nginx配置文件如下,其中server_name就是线上域名,location的root就是项目本地目录,proxy_pass是本地接口地址:
03 | server_name www.5imoban.net; |
07 | index index.html index.htm; |
2、hosts加入下面这句:
1 | 127.0.0.1 www.5imoban.net |
经过上面的两步修改,再重启Nginx,再访问线上地址 www.5imoban.net,实际上就是访问本地,接口也是调用的本地,方便了调试,也可以正确的显示二维码进行扫码了。
部分素材资源来源网站,本站提供免费下载,如有侵权请联系站长马上删除!