小程序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 相关文章推荐
利用div+jquery自定义滚动条样式的2种方法
Jul 18 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
jquery图形密码实现方法
Mar 11 Javascript
js实现类似jquery里animate动画效果的方法
Apr 10 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
Oct 14 Javascript
Svg.js实例教程及使用手册详解(一)
May 16 Javascript
AngularJS入门教程之控制器详解
Jul 27 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
Vue.js每天必学之表单控件绑定
Sep 05 Javascript
JavaScript中匿名函数的递归调用
Jan 22 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
vue 开发之路由配置方法详解
Dec 02 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 选项及相关信息函数库
2006/12/04 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
Nodejs进阶:express+session实现简易登录身份认证
2017/04/24 NodeJs
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
工程部经理岗位职责
2013/12/08 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
辞职信格式范文
2015/05/13 职场文书
网聊搭讪开场白
2015/05/28 职场文书
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js