微信小程序使用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 相关文章推荐
浅谈document.write()输出样式
May 07 Javascript
smartcrop.js智能图片裁剪库
Oct 14 Javascript
基于jQuery实现select下拉选择可输入附源码下载
Feb 03 Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 Javascript
详解Webpack DLL用法以及功能
Jul 11 Javascript
vue组件初学_弹射小球(实例讲解)
Sep 06 Javascript
vue+Java后端进行调试时解决跨域问题的方式
Oct 19 Javascript
Angular4学习教程之DOM属性绑定详解
Jan 04 Javascript
vue select二级联动第二级默认选中第一个option值的实例
Jan 10 Javascript
JavaScript中.min.js和.js文件的区别讲解
Feb 13 Javascript
jQuery实现的解析本地 XML 文档操作示例
Apr 30 jQuery
解决vue单页面 回退页面 keeplive 缓存问题
Jul 22 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 简单数组排序实现代码
2009/08/05 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
python删除过期文件的方法
2015/05/29 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
python对视频画框标记后保存的方法
2018/12/07 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
python绘制动态曲线教程
2020/02/24 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
应届医学毕业生求职信分享
2013/12/02 职场文书
实习鉴定范文
2013/12/19 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
英语教师岗位职责
2014/03/16 职场文书
检讨书范文1000字
2015/01/28 职场文书
2015年实习单位评语
2015/03/25 职场文书
舞出我人生观后感
2015/06/16 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python