小程序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 相关文章推荐
利用WebBrowser彻底解决Web打印问题(包括后台打印)
Jun 22 Javascript
有关js的变量作用域和this指针的讨论
Dec 16 Javascript
精心挑选的15个jQuery下拉菜单制作教程
Jun 15 Javascript
jquery控制左右箭头滚动图片列表的实例
May 20 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
Dec 16 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
js使用DOM操作实现简单留言板的方法
Apr 10 Javascript
jQuery 控制文本框自动缩小字体填充
Jun 16 jQuery
小程序跨页面交互的作用与方法详解
Jan 07 Javascript
JQuery获得内容和属性方法解析
May 30 jQuery
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
Nov 11 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命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
总结Python中逻辑运算符的使用
2015/05/13 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
数学系毕业生的自我评价
2014/01/10 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
先进工作者获奖感言
2014/02/08 职场文书
户外拓展活动方案
2014/02/11 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
商务日语专业自荐信
2014/04/17 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
医生见习报告范文
2014/11/03 职场文书
投资公司董事长岗位职责
2015/04/16 职场文书
2016大一新生军训感言
2015/12/08 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript