• 技术文章 >web前端 >js教程

    在微信小程序中如何使用request网络进行请求操作

    亚连亚连2018-06-20 15:47:44原创1259
    这篇文章主要介绍了微信小程序使用request网络请求操作,结合实例形式分析了wx.request(object)网络请求操作的具体使用技巧,需要的朋友可以参考下

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

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

    官方参数说明如下

    OBJECT参数说明:

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

    最简单的用法如下(以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)
     });
     }
    })

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    在js中如何判断节假日

    在Angular中如何实现查询天气预报

    在Angular中如何实现显示输入内容

    以上就是在微信小程序中如何使用request网络进行请求操作的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:在微信小程序中如何使用ajax实现请求服务器数据 下一篇:VS Code编辑器中关于修改选中文字或代码颜色操作
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• node.js gm是什么• 进程和线程如何理解?Node.js中的进程和线程是怎样的?• 详细介绍JavaScript中Promise的基本概念及使用方法• node的异步机制是基于什么• node.js后台框架有哪些
    1/1

    PHP中文网