微信小程序使用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 相关文章推荐
List Information About the Binary Files Used by an Application
Jun 11 Javascript
Js-$.extend扩展方法使方法参数更灵活
Jan 15 Javascript
jquery中get,post和ajax方法的使用小结
Feb 04 Javascript
一波JavaScript日期判断脚本分享
Mar 06 Javascript
weUI应用之JS常用信息提示弹层的封装
Nov 21 Javascript
Vue页面骨架屏的实现方法
May 22 Javascript
react实现换肤功能的示例代码
Aug 14 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
Sep 13 Javascript
深入浅析javascript函数中with
Oct 28 Javascript
element-ui组件table实现自定义筛选功能的示例代码
Mar 15 Javascript
Vue实现背景更换颜色操作
Jul 17 Javascript
jQuery实现推拉门效果
Oct 19 jQuery
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中try catch捕获异常实例详解
2014/11/21 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
在Django的session中使用User对象的方法
2015/07/23 Python
浅析使用Python操作文件
2017/07/31 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
Python数据存储之 h5py详解
2019/12/26 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
.net开发工程师面试题
2014/02/25 面试题
新教师工作感言
2014/02/16 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
开展读书活动总结
2014/06/30 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
安全生产工作汇报
2014/10/28 职场文书
红十字会救护培训简讯
2015/07/20 职场文书