微信小程序使用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 相关文章推荐
使用JS操作页面表格,元素的一些技巧
Feb 02 Javascript
精选的10款用于构建良好易用性网站的jQuery插件
Jan 23 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
Dec 31 Javascript
jQuery带时间的日期控件代码分享
Aug 26 Javascript
js强制把网址设为默认首页
Sep 29 Javascript
js不间断滚动的简单实现
Jun 03 Javascript
Javascript 实现简单计算器实例代码
Oct 23 Javascript
JavaScript实现垂直向上无缝滚动特效代码
Nov 23 Javascript
vue + socket.io实现一个简易聊天室示例代码
Mar 06 Javascript
使用Node.js搭建静态资源服务详细教程
Aug 02 Javascript
javascript实现遮罩层动态效果实例
May 14 Javascript
通过vue刷新左侧菜单栏操作
Aug 06 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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
php自定义session示例分享
2014/04/22 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
JS的数组的扩展实例代码
2008/07/09 Javascript
ie 调试javascript的工具
2009/04/29 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
python中pass语句用法实例分析
2015/04/30 Python
Python 字典与字符串的互转实例
2017/01/13 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
python字符串的拼接方法总结
2019/11/18 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
意大利单身交友网站:Meetic
2020/07/12 全球购物
《跨越百年的美丽》教学反思
2014/02/11 职场文书
七匹狼男装广告词
2014/03/21 职场文书
我爱我校演讲稿
2014/05/21 职场文书
主题团日活动总结
2014/06/25 职场文书
护士2014年终工作总结
2014/11/11 职场文书
小学教研工作总结2015
2015/05/13 职场文书
小学少先队工作总结2015
2015/05/26 职场文书