让微信小程序可以访问企业的业务系统是一个小程序的一个基本功能。现在,很多企业业务系统都会提供一些 Web API 供移动应用或第三方访问,微信小程序也可以利用这些已有的 Web API。
wx.request方法
在微信小程序中,访问网络,主要使用 wx.reqest 方法,方法定义如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| wx.request({ url: 'xxx.com/api/todo', method: 'POST', data: { x: '', y: '' }, header: { 'content-type': 'application/json' }, success (res) { console.log(res.data) }, fail() {
} })
|
示例代码
在案例中我们模拟访问一个登录接口,用户在界面输入用户名和密码,然后服务端进行验证。
对应的 wxml 代码如下:
1 2 3 4 5 6 7
| <view class="container"> <form bindsubmit='onSubmit'> <input name="userId" value="{{userId}}" placeholder="please input userId" /> <input name="password" value="{{password}}" placeholder="please input password" /> <button form-type="submit">Submit</button> </form> </view>
|
javascript 代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| const app = getApp()
Page({ data: { userId: '', password: '' }, onLoad: function () { console.log('onLoad') }, onSubmit: function(e) { console.log(e.detail.value.userId + ', ' + e.detail.value.password) var that = this
this.setData({ userId: e.detail.value.userId, password: e.detail.value.password })
wx.request({ url: 'https://xxxx.cn/api/login', method: 'POST', data: { userId: that.data.userId, password: that.data.password }, header: {'Content-Type': 'application/json'}, success: function(res) { console.log('ok: ' + JSON.stringify(res)) if (res.data.succ) { console.log('login success, token' + res.data.data) } else { console.log('login fail: ' + res.data.msg) } }, fail: function() { console.log('fail') } }) } })
|