小程序接口越过域名和https限制方法
都知道小程序上线接口需要域名,还需要https,就算是体验版的都是需要的,这样就筛选掉一大批开发者,像我这样只有学生轻量级服务器的学生要开发自己的小程序就很为难,但今天确惊奇的在小程序社区里面找到了用ip写接口的方法。
这就是用云函数,官方文档上面写的云函数是只提供了一套对自己数据库的增删改查。提供这套功能的框架是wx-server-sdk
,由于云开发的环境运行在node.js中,我们开发者工具这边也要安装node.js,幸好我以前研究云函数的时候在自己电脑预安装了node.js,所以这边可以直接运行,话不多说,放码过来。
用PHP随便写个接口,返回点东西,放到自己的服务器中。
<?php $id = \'我是id\'; $name = \'我是name\'; $ret=array(\'id\'=>$id,\'name\'=>$name); echo urldecode(json_encode($ret, JSON_UNESCAPED_UNICODE)); ?>
然后新建一个云函数,具体怎么建可以参考官方文档
然后在该云函数的目录中安装request-promise依赖,在你电脑中找到你的云函数目录地址,按住shift,右键空白处,在此处打开cmd,然后输入npm install request-promise回车。
接着在你新建的云函数中的index.js中插入以下代码
//request-promise是刚刚你在云函数的目录下安装的依赖 const rq = require(\'request-promise\') exports.main = async(event, context) => { var res = await rq( { method: \'post\', uri: \'http://你的ip/aa.php\', body: { xxx: \'\', }, //参数 headers: {}, //请求头 json: true //是否json数据 } ).then((body) => { return body }).catch(err => { return err; }) return res; }
这样就好了,现在去请求看看。
onLoad: function () { // 初始化 wx.cloud.init() wx.cloud.callFunction({ name: \'proxy\', }).then(res => { console.log(res) }) },
返回:
正常返回,以后ip也可以写接口了,只不过云服务还是有很多确点的,返回慢,次数限制等。但对于学习而言足够了。