微信小程序的js后台只能执行一些简单的逻辑,遇到比较复杂的处理表单数据的功能或者网络功能就需要连接服务器来远程处理,实现方式就是调用小程序的wx.request()这一接口。
小程序端
request请求就是基本的HTTP请求,可以携带一些表单数据,交给服务器处理。
在小程序中的写法如下:
wx.request({
url: 'https://xxx.com/server.php',//接口地址
data: {//请求数据
key1: value1,
key2: value2
},
success: function (res) {//收到开发者服务成功返回的回调函数
console.log("complete")
console.log(res.data)
console.log(res.statusCode)
},
fail: function () {//接口调用失败的回调函数
console.log("fail")
},
complete: function () {//接口调用结束的回调函数(调用成功、失败都会执行)
console.log("complete")
}
})
- 可以设置请求的方式,默认为GET。
- url项在开发调试时可以关闭域名检查然后通过ip地址或者http地址等建立连接,而在小程序发布时则必须采用https请求,这意味着服务器端要安装ssl证书,具体参见官方文档。
- data项为请求携带的数据,用json的形式进行表示。
- res.data为服务器返回的数据,仍然是json形式。
- fail() 函数只在微信端接口调用失败时回调,而 success() 函数只要成功发送了请求就会被回调,这意味着当服务器异常、无法完成请求时,还是会回调 success() 函数。因此,要通过返回对象 res 的 res.statuCode 属性值来判断连接情况。
- 还有许多属性项没有提及,具体参见官方文档。
服务器端
采用php作为服务器端语言,通过WAMP等框架可以很容易地搭建环境,服务器主要完成对请求数据的处理以及结果数据的返回。
获取请求数据
请求数据的获取非常容易,直接访问相应的超全局数组,对于GET方法而言,通过下面的方式即可:
<?php //server.php
$value1 = $_GET["key1"];
$value2 = $_GET["key2"];
?>
结果数据的返回
为了方便小程序端数据的处理,结果数据仍通过json格式返回,具体在php中的简单做法就是
<?php
$value1="abc";
$value2="def";
$res["key1"]=$value1;
$res["key2"]=$value2;
echo json_encode($res);//将数组转换为json格式并通过echo返回
?>
这样返回的json数据就为
{
"key1": "abc",
"key2": "def"
}
其中value1,value2等变量可以设置为多维数组,这样通过json_encode() 函数之后就可以得到相应的嵌套的json数据,从而方便处理。
通过php可以很容易地处理微信小程序的request请求,笔者是由于前一段时间需要进行微信小程序的开发,就研究了一下小程序的逻辑,然后尝试用php进行服务端处理,对于简单的请求处理起来觉得还不错,这篇文章可以作为初次接触微信小程序的一个参考。