微信小程序使用request网络请求操作实例


Posted in Javascript onDecember 15, 2017

本文实例讲述了微信小程序使用request网络请求操作。分享给大家供大家参考,具体如下:

小程序提供了很多api,极大的方便了开发者,其中网络请求api是wx.request(object),这是小程序与开发者的服务器实现数据交互的一个很重要的api。

官方参数说明如下

OBJECT参数说明:

参数名 类型 必填 说明
url String 开发者服务器接口地址
data Object、String 请求的参数
header Object 设置请求的 header , header 中不能设置 Referer
method String 默认为 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
success Function 收到开发者服务成功返回的回调函数,res = {data: '开发者服务器返回的内容'}
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

最简单的用法如下(以POST请求为例)

bindSearchChange:function(e){
 var keyword = e.detail.value;
 wx.request({
 url:'xxxxxxxxx',
 data:{},
 header: {'Content-Type': 'application/json'},
 success: function(res) {
 console.log(res)
 }
 })
}

下面我们把请求写在service文件下的http.js文件中,代码如下

var rootDocment = 'hxxxxx';//你的域名
function req(url,data,cb){
 wx.request({
 url: rootDocment + url,
 data: data,
 method: 'post',
 header: {'Content-Type': 'application/json'},
 success: function(res){
 return typeof cb == "function" && cb(res.data)
 },
 fail: function(){
 return typeof cb == "function" && cb(false)
 }
 })
}
module.exports = {
 req: req
}

其中module.exports是将req方法暴露出去使得别的文件中可以使用该方法,由于js函数是异步执行的,所以return 的是回调函数,而不是具体的数据

为了其他文件方便调用此方法,我们在根目录的app.js文件中将其注册成为全局函数,如下

//app.js
var http = require('service/http.js')
App({
 onLaunch: function () {
 //调用API从本地缓存中获取数据
 var logs = wx.getStorageSync('logs') || []
 logs.unshift(Date.now())
 wx.setStorageSync('logs', logs)
 },
 getUserInfo:function(cb){
 var that = this
 if(this.globalData.userInfo){
 typeof cb == "function" && cb(this.globalData.userInfo)
 }else{
 //调用登录接口
 wx.login({
 success: function () {
  wx.getUserInfo({
  success: function (res) {
  that.globalData.userInfo = res.userInfo
  typeof cb == "function" && cb(that.globalData.userInfo)
  }
  })
 }
 })
 }
 },
 globalData:{
 userInfo:null
 },
 func:{
 req:http.req
 }
})

这时这个req就是全局的了,在调用时我们可以使用getApp.func.req()来调用,具体如下

var app = getApp()
Page({
 data: {
 },
 onLoad: function (opt) {
 //console.log(opt.name)
 app.func.req('/api/get_data',{},function(res){
 console.log(res)
 });
 }
})

微信小程序提供了很多api,包括网络,媒体,数据等,也提供了很多组件,使开发小程序变得很方便。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
ExtJs事件机制基本代码模型和流程解析
Oct 24 Javascript
浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总
Jul 08 Javascript
分享一个自己写的简单的javascript分页组件
Feb 15 Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
May 16 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
Jul 22 Javascript
浅谈JS之iframe中的窗口
Sep 13 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
Apr 17 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
May 28 Javascript
Angular 4.X开发实践中的踩坑小结
Jul 04 Javascript
Vue-cli3项目配置Vue.config.js实战记录
Jul 29 Javascript
js中arguments对象的深入理解
May 14 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
Dec 15 #Javascript
Angular中管道操作符(|)的使用方法
Dec 15 #Javascript
浅谈Vue SPA 首屏加载优化实践
Dec 15 #Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
Dec 15 #Javascript
Angular2开发环境搭建教程之VS Code
Dec 15 #Javascript
JavaScript原生实现观察者模式的示例
Dec 15 #Javascript
基于javascript 显式转换与隐式转换(详解)
Dec 15 #Javascript
You might like
php中文字符截取防乱码
2008/03/28 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
总结Python编程中函数的使用要点
2016/03/20 Python
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
接口的多继承会带来哪些问题
2015/08/17 面试题
车辆安全检查制度
2014/01/12 职场文书
办公室人员先进事迹
2014/01/27 职场文书
三好学生评语大全
2014/12/29 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
教师思想工作总结2015
2015/05/13 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript
Python PIL按比例裁剪图片
2022/05/11 Python