微信小程序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 相关文章推荐
Js点击弹出下拉菜单效果实例
Aug 12 Javascript
js螺旋动画效果的具体实例
Nov 15 Javascript
Javascript中replace()小结
Sep 30 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
Feb 25 Javascript
Bootstrap网格系统详解
Apr 26 Javascript
javascript 动态样式添加的简单实现
Oct 11 Javascript
分享19个JavaScript 有用的简写写法
Jul 07 Javascript
详解webpack性能优化——DLL
Oct 20 Javascript
vue-music关于Player播放器组件详解
Nov 28 Javascript
JavaScript模块详解
Dec 18 Javascript
JavaScript实现简单随机点名器
Nov 21 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
Dec 12 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
PHP 采集获取指定网址的内容
2010/01/05 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
Python基于select实现的socket服务器
2016/04/13 Python
使用Python写一个小游戏
2018/04/02 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
python3.6编写的单元测试示例
2019/08/17 Python
python模块常用用法实例详解
2019/10/17 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
汽车销售求职自荐信
2013/10/01 职场文书
儿科护士自我鉴定
2013/10/14 职场文书
自我鉴定范文
2013/11/10 职场文书
教学大赛获奖感言
2014/01/15 职场文书
农村葬礼主持词
2014/03/31 职场文书
工作经验交流材料
2014/12/30 职场文书
博士给导师的自荐信
2015/03/06 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python
Nginx跨域问题解析与解决
2022/08/05 Servers