微信小程序HTTP接口请求封装代码实例


Posted in Javascript onSeptember 05, 2019

1.方法封装(新建文件夹util,工具文件,在文件夹下创建request.js文件,用于对方法封装)

request.js:

var app = getApp();
//项目URL相同部分,减轻代码量,同时方便项目迁移
//这里因为我是本地调试,所以host不规范,实际上应该是你备案的域名信息
var host = 'http://localhost:8081/demo/';
 
/**
 * POST请求,
 * URL:接口
 * postData:参数,json类型
 * doSuccess:成功的回调函数
 * doFail:失败的回调函数
 */
function request(url, postData, doSuccess, doFail) {
 wx.request({
  //项目的真正接口,通过字符串拼接方式实现
  url: host + url,
  header: {
   "content-type": "application/json;charset=UTF-8"
  },
  data: postData,
  method: 'POST',
  success: function (res) {
   //参数值为res.data,直接将返回的数据传入
   doSuccess(res.data);
  },
  fail: function () {
   doFail();
  },
 })
}
 
//GET请求,不需传参,直接URL调用,
function getData(url, doSuccess, doFail) {
 wx.request({
  url: host + url,
  header: {
   "content-type": "application/json;charset=UTF-8"
  },
  method: 'GET',
  success: function (res) {
   doSuccess(res.data);
  },
  fail: function () {
   doFail();
  },
 })
}
/**
 * module.exports用来导出代码
 * js文件中通过var call = require("../util/request.js") 加载
 * 在引入引入文件的时候" "里面的内容通过../../../这种类型,小程序的编译器会自动提示,因为你可能
 * 项目目录不止一级,不同的js文件对应的工具类的位置不一样
 */
module.exports.request = request;
module.exports.getData = getData;

2.page里面随便一个创建一个文件夹,创建四种文件,在js里面加入 

//引入代码
var call = require("../util/request.js")
 
Page({
 data: {
  pictureList: [],
 },
  
 onLoad: function () {
  var that = this;
  //调用封装的方法,为了方便我直接在页面加载的时候执行这个方法
  call.getData('lunbo.do', this.shuffleSuc, this.fail);
  // 无用,前面忘记注释,抱歉
  // this.loadMsgData(that);
 },
 shuffleSuc: function (data) {
  var that = this;
  that.setData({
   pictureList: data.rows
  })
  //我后面测试了一下,直接this.setData也可以,但是因为我在没有使用封装方法的时候
  //this.setData报过错,不能直接用this,所以我在赋值的时候一般都会加上var that = this;
  //这句话算是一个不是习惯的习惯
 },
 fail: function () {
  console.log("失败")
 },
})

将回调函数写在page里面,在调用封装方法的时候通过this.方法名调用,这样就能确保that.setData方法有效,如果是写在外面的function方法小程序编译器不会报错,但是在wxml中bindtap无效,我也没深究,同时在call.getData方法中调用的时候虽然能够进入该方法,但是赋值是无效的,所以我不建议用这种方式:

function shuffleSuc(data) {
 var that = this;
 that.setData({
  pictureList: data.rows
 })
}

3. 运行之后通过小程序的控制台AppData可以打印data里面的值,同时也可以根据需要在页面中显示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Dom 学习总结以及实例的使用介绍
Apr 24 Javascript
Javascript window对象详解
Nov 12 Javascript
jQuery插件datalist实现很好看的input下拉列表
Jul 14 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
Nov 23 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
Jun 23 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
Aug 18 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
JavaScript实现翻页功能(附效果图)
Feb 16 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
Dec 20 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
Apr 30 Javascript
layui table去掉右侧滑动条的实现方法
Sep 05 #Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
Sep 05 #Javascript
layui动态加载多表头的实例
Sep 05 #Javascript
如何阻止小程序遮罩层下方图层滚动
Sep 05 #Javascript
layui多iframe页面控制定时器运行的方法
Sep 05 #Javascript
解决layer.msg 不居中 ifram中的问题
Sep 05 #Javascript
JS中比Switch...Case更优雅的多条件判断写法
Sep 05 #Javascript
You might like
给海燕B411配件机起死回生配上件
2021/03/02 无线电
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
微信支付扫码支付php版
2016/07/22 PHP
理解JSON:3分钟课程
2011/10/28 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
js数组的操作指南
2014/12/28 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
简单实现bootstrap导航效果
2017/02/07 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
vue keep-alive的简单总结
2021/01/25 Vue.js
python中函数传参详解
2016/07/03 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
python3安装crypto出错及解决方法
2019/07/30 Python
Django Form常用功能及代码示例
2020/10/13 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
高分子材料与工程专业个人求职信
2013/12/15 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
2015毕业寄语大全
2015/02/26 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android