小程序Request的另类用法详解


Posted in Javascript onAugust 09, 2019

前言

小程序中唯一能发送网络请求接口数据的是wx.request接口,当然这个接口存在诸多的限制,例如:10个并发请求限制,https限制(当然在开发阶段是可以关闭此限制),除了wx.request还有其他方法可以实现类型的功能吗?当然是有的,这个思路也源于我之前看到的一篇文章,随便笔记下来

思路

使用云开发来发送网络请求并把数据返回给小程序端。还不了解的云开发的同学请速度移步到官方【云开发】
新建一个http的云函数

// 云函数入口文件
const cloud = require('wx-server-sdk')
const axios = require('axios')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
 const wxContext = cloud.getWXContext()
 const { method, url, data } = event;
 const res = await axios.request({
  method: method,
  url: url,
  data: data
 });
 return { code: 1, data: res.data } || {code: -1, msg: 'error', data: null}
}

小程序端二次封装云函数调用

async http(options = {}) {
  return wx.cloud.callFunction({
    name: 'http',
    data: {
      method: options.method || 'GET',
      url: options.url || '',
      data: options.data || {}
    }
  }).then(res => {
    return res.result
  })
},

小程序端使用

async onLoad() {
  this.http({
   method: 'GET',
   url: 'https://www.baidu.com'
  }).then(res => {
   console.log(res)
  })
 },

总结

这种方法可以很好绕过https的限制,当然这只是提供一个简单的思路,我们可以进一步细一点封装,包括配置header proxy 等等功能,其实原理就是借助云函数做了二次转发,性能上肯定比不上原生的request

注意

async 和 await 语法糖在最新的开发工具中已经实现了,开启增强编译即可使用,具体更新内容请移步官方社区 微信小程序社区

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
js各种验证文本框输入格式(正则表达式)
Oct 22 Javascript
jQuery实现简单二级下拉菜单
Apr 12 Javascript
jquery实现表单输入时提示文字滑动向上效果
Aug 10 Javascript
浅析javascript函数表达式
Feb 10 Javascript
详解javascript跨浏览器事件处理程序
Mar 27 Javascript
前端jquery部分很精彩
May 03 Javascript
JavaScript中省略元素对数组长度的影响
Oct 26 Javascript
JavaScript严格模式详解
Jan 16 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
浅谈vue 组件中的setInterval方法和window的不同
Jul 30 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
Aug 09 #Javascript
vue中组件通信的八种方式(值得收藏!)
Aug 09 #Javascript
Vue全局loading及错误提示的思路与实现
Aug 09 #Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 #Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 #Javascript
微信小程序如何连接Java后台
Aug 08 #Javascript
vue 实现Web端的定位功能 获取经纬度
Aug 08 #Javascript
You might like
关于PHP中的Class的几点个人看法
2006/10/09 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
python处理二进制数据的方法
2015/06/03 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
python语言中with as的用法使用详解
2018/02/23 Python
详解python 注释、变量、类型
2018/08/10 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
美国知名艺术画网站:Art.com
2017/02/09 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
J2EE面试题大全
2016/08/06 面试题
小车司机岗位职责
2013/11/25 职场文书
施工安全承诺书
2014/05/22 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
2014年团队工作总结
2014/11/24 职场文书
大班下学期个人总结
2015/02/13 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书