微信小程序> 小程序与后端交互

小程序与后端交互

浏览量:1649 时间: 来源:浪子四方

目录

1 后端交互时序图 

2 不校验域名

3 点击小程序的功能

4 request请求

 5 返回结果

 6 更新视图层

 7 使用案例

 7.1 WXML文件

7.2 WXSS文件

7.3 JS文件

8 GitHub地址

 


1 后端交互时序图 

2 不校验域名

如果我们没有备案好的域名的话,在开发过程中我们可开启不校验域名模式,等项目开发好后再到小程序后台配置合法的域名,

开启不校验域名的操作如下图所示。

3 点击小程序的功能

这里与小程序的具体业务有关,我们可以自己根据需求来添加,比如用户点击了某个按钮或者提交了某个表单之类的事件。

4 request请求

request请求,就是根据用户在小程序上提交的事件来向后端服务器发起请求,在小程序中用来发起http请求的可以使用wx.request()来完成。

注:在另一篇文章有讲解,这里就不复述了,链接

 5 返回结果

后端服务器根据请求的类型向小程序返回请求结果,一般在开发的过程中,我们会以JSON作为返回结果的数据格式。

 6 更新视图层

wx.request()success回调函数里,我们可以使用this.setData()将从后端服务器上返回的结果更新到视图层(WXML)

这里需要注意的一点:

直接在success回调函数里使用this.setData()是会报错的,因为此时的this指针指向的是success回调函数,而不是Page(),所以我们可以在发起wx.request之前,把this赋值给一个新的变量,如下图所示。

 7 使用案例

注:笔者这里使用的是一个开放的图片推荐的API来作为后端处理请求

API地址:https://api.apiopen.top/getImages

请求方式:POST

请求数据:page(字符串型),count(字符串型)

说明:通过小程序的刷新按钮来向后端服务器发起刷新图片的请求后端接受到刷新请求后向小程序的JS文件返回请求结果JS文件正确接收到结果后再将新的内容通过this.setData()更新到视图层(WXML),该案例的效果如下图所示。

 7.1 WXML文件

<view class="image_box">  <view class="image_list" wx:for="{{data}}">    <image src="{{item.img}}"  mode="aspectFill" binderror="imgerror">    </image>  </view></view><button bindtap='getImages' type='primary'>刷新</button>

7.2 WXSS文件

.image_box {  width: 100%;  height: 480rpx;  overflow: hidden;  padding: 60rpx;  white-space: nowrap;}.image_list {  width: 800rpx;  height: auto;  display: inline-block;}image {  border-radius: 40rpx;}

7.3 JS文件

//获取应用实例const app = getApp()Page({  data: {},  // 监听页面加载  onLoad: function () {    this.getImages()  },  // 不能正确加载的图片再次请求加载  imgerror: function (res) {    wx.showToast({      title: '稍等',      icon: 'loading',      duration: 2000    })    this.getImages()  },  // 通过API请求图片资源  getImages() {    var seft = this    wx.request({      // 向后发起请求的地址      url: 'https://api.apiopen.top/getImages',      // 请求的数据      data: {        page: '',        count: '1'      },      // 设置请求头,GET请求的话可以省略此项      header: {        'content-type': 'application/x-www-form-urlencoded'      },      // 请求的方式      method: 'POST',      dataType: 'json',      responseType: 'text',      // 请求成功的回调函数      success: function (res) {        var data = res.data.result      // 将请求的结果更新到视图层        seft.setData({          data: data        });      }    })  }})

8 GitHub地址

https://github.com/lwqbrell/wechat-images

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎