微信小程序Ajax加载远程数据

发布于 2017-07-07 10:21:35 字数 1751 浏览 4523 评论 0

小程序的容量是有限制,最大不超过2M,而我们有很多的资源,这时候就只能通过远程地址来加载数据,微信小程序定义了 wx.request() 方法,可以轻松Ajax加载远程数据。

微信小程序的外部链接必须使用HTTPS安全链接,这点比较麻烦,一般网站都没有这样的功能,我使用七牛云,他提供了SSL安全链接的CDN加速,可以放置一些静态的文件。

首先我们需要下载微信小程序的开发工具,可以到这里:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html 下载,选择适合你电脑操作系统的最新版本,双击安装即可使用。

我们先新建一个项目AppID可以不填写,然后是保存的路径,勾选在当前目录中创建 quick start 项目,开发工具会为我们创建一个简易的项目结构。

展开中间的 page 文件夹,点击 index.js 在右侧编辑文件,这个页面就是我们的行为控制文件,包括加载数据、小程序的事件等操作,在 onLoad: function () {} 页面加载完成的回调函数里面,添加我们 Ajax 代码:

onLoad: function () {
var page = this;
wx.request({
  url: 'https://ssl.wenjiangs.com/posts.json',  
  data: {},
  method: 'GET',
  success: function (res) {
    page.setData({
      wp_post:res.data
    })
  },
  fail: function () {
  },
  complete: function () {
  }
})

我刚开始使用的时候,调用 pagesetData 方法总是报错,然后添加 var page = this 以后就正常了,应该是 page 变量作用域的问题。

这里需要注意的是,访问成功后,匿名函数的参数 res 并不是我们请求到的具体数据,而 res.data 才是,这个和我们一般的Ajax请求有点区别,最后我们发送一个 wp_post 变量到小程序的页面中,接下来我们需要输出这个变量:

<view wx:for="{{wp_post}}" wx:for-item="item" wx:key="key"  wx:for-index="id">
{{id}}:{{item.title.rendered}}
</view>

如果你使用过模版引擎,那么上面的语法你应该不会陌生,唯一有点区别的就是微信小程序使用 wx:for 循环代码,可以定义索引和元素项,通过JS的点语法查找到下面的子元素。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

沧笙踏歌

文章 0 评论 0

山田美奈子

文章 0 评论 0

佚名

文章 0 评论 0

岁月无声

文章 0 评论 0

暗藏城府

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文