微信小程序使用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 相关文章推荐
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
Aug 01 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
Aug 01 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
Aug 15 Javascript
10分钟学会写Jquery插件实例教程
Sep 06 Javascript
JS操作HTML自定义属性的方法
Feb 10 Javascript
jQuery实现带滑动条的菜单效果代码
Aug 26 Javascript
js实现简单的选项卡效果
Feb 23 Javascript
bootstrap-Treeview实现级联勾选
Nov 23 Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 Javascript
JS使用正则表达式判断输入框失去焦点事件
Oct 16 Javascript
仿照Element-ui实现一个简易的$message方法
Sep 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获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
mongodb和php的用法详解
2019/03/25 PHP
javascript获取url上某个参数的方法
2013/11/08 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
Python单链表的简单实现方法
2014/09/23 Python
Python中的__SLOTS__属性使用示例
2015/02/18 Python
浅谈python对象数据的读写权限
2016/09/12 Python
python中字符串的操作方法大全
2018/06/03 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
大学生社会实践方案
2014/05/11 职场文书
安全生产先进个人总结
2015/02/15 职场文书