网上找的帖子大多是直接在onload中请求数据。而我想实现的是点击按钮,然后请求服务器,接着返回数据,前端页面渲染。所以搞了挺久的,在此记录一下。

请求是按照微信官方给出的,wx.request

在这里,我的逻辑是:点击按钮---》根据绑定的事情注册函数--》发起微信请求--》判断是否返回数据,成功返回数据则显示请求成功。--》返回数据到前端页面进行渲染

废话不多说,直接上代码:

一、前端页面代码:

<view class="container2">
  <view class="panel">
      <label class="title">请输入查询内容</label>
      <input class="inputarea"/>
      <button bindtap='onRequest' type="primary" class="searBtn">查询</button>
  </view>
  <scroll-view class="article-list" style="height:500px" scroll-y="true" bindscrolltolower="nextPage">
  <block wx:for="{{list}}">
  <view class="list-item" index="{{index}}">
  <view class="title">
  <view class="title-name">{{item.title}}</view>
  </view>
  </view>
  </block>
  </scroll-view>>

解释:

(1)此处的button绑定onRequest事件,当点击button时候,触发该事件。

(2)下面的view 主要是渲染request请求之后的数据,利用wx:for 来进行循环输出.

(3)需要注意,我们此处用的是带滚动效果的:scroll-view,同时scroll-y="true" 代表是竖向滚动。

二、JS代码:

Page({
  data: {
    motto: '你懂我懂不懂',
    list:[]
  },
  onload:function()
  {
  this.onRequest();
  },
  onRequest:function()
  {
    var that = this;
    wx.request({
      url: 'https://api.douban.com/v2/movie/top250',
      method:"GET",
      header: {
        'Content-Type': 'json'
      },
      success: function (res) {
        console.log(res.data.subjects);
        var date = res.data.subjects;
        that.setData({
          list: date
        })
      },
      fail: function () {
        console.log("接口调用失败");
      }
    })
  },
  nextPage:function()
  {
    console.log("下拉触发该函数");
  },
  //事件处理函数
  bindViewTap: function () {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
})

解释:

(1)list是我们等下要输入的内容,因此需要在data中体检申明

(2)onload函数在此处很重要。页面加载完成之后,调用了onrequest()函数,这样是为了渲染数据。重置要求

必须使用that.setData,这里的that需要用:var that = this来申明。

(3)当点击Button按钮的时候,onRequest函数出发。此时请求url,并返回数据。当返回的数据存在时,走success方法。

(4)此时,赋值list :date,相当于给list赋值,可用于wxml页面进行数据渲染。

(5)nextPage即为页面滚动函数。当下拉触底时,触发该函数

(6)此处的url为豆瓣的一个查看电影的url,可以直接借用的。

效果图:

三、碰到的问题:

1、报错:微信小程序开发-网络请求报Invalid

request 400错误:

原因:最新版的参数和以前的不同,把数据格式换一换。

// 'content-type': 'application/json'
'Content-Type': 'json'

2、请求中的get,post必须要大写

3、如果出现找不到页面的情况,可能是app.json中,你的引入页面顺序问题。有的页面的js没有page()函

数,造成页面未定义

end

虽然忙活到12点,但是感觉受益匪浅。苦逼的程序猿,也只有获取知识时候的那点快感聊以自慰了。

原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=2924

微信小程序--ajax服务器交互及页面渲染的更多相关文章

  1. 微信小程序答题,怎么设计页面渲染,答完一题,跳到下一题

    想要的效果 1.第一页只显示第一道题的内容,如图红框2.答题后,点击下一题,内容显示第二道题的内容 代码 answer.wxml <!--pages/answer/answer.wxml--&g ...

  2. 鸿蒙的远程交互组件应用及微信小程序的远程交互组件应用

    注:鸿蒙的远程交互组件应用相对复杂 ,访问网络时,首先要配置网络权限,华为官方文档有问题,在此引用我老师配置的模板,见附件 过程:1.导入鸿蒙的网络请求模块fetch 2.发起对服务器的请求(在这过程 ...

  3. 微信小程序:JS 交互逻辑

    微信小程序:JS 交互逻辑 一.JS 交互逻辑 一个服务仅仅只有界面展示是不够的,还需要和用户做交互:响应用户的点击.获取用户的位置等等.在小程序里边,我们就通过编写 JS 脚本文件来处理用户的操作. ...

  4. 微信小程序把玩(五)页面生命周期

    原文:微信小程序把玩(五)页面生命周期 这里只要熟悉页面的基本生命周期即可,业务在指定生命周期函数内书写. 以下是官网给出的生命周期函数方法和状态图 上面的生周期函数图对于做Android 或者IOS ...

  5. 微信小程序与Html交互

    微信小程序与H5页面交互 https://www.jianshu.com/p/22e951d83841

  6. 微信小程序开发06-一个业务页面的完成

    前言 接上文:微信小程序开发05-日历组件的实现 github地址:https://github.com/yexiaochai/wxdemo 这里来说一说我们的理念,我们也学习小程序开发有一周多了,从 ...

  7. 微信小程序 从含有tabbar的页面跳转到不含有tabbar的页面

    如何离开含有tabbar的页面 在微信小程序开发过程中,我们会碰到从某页跳转到一个含有tabbar的页面的需求, 用 wx.navigateTo({url: '...',})  不起作用,需要使用 w ...

  8. 微信小程序开发--路由切换,页面重定向

    这段时间开发了一个微信小程序,虽然小程序的导航API 官方文档写得很详细,但是在具体开发过程中还是会遇到很多不明白,或者一时转不过弯的地方. 1.页面切换传参,参数读取 1.1  wx.navigat ...

  9. 微信小程序web-view(webview) 嵌套H5页面 唤起微信支付的实现方案

    场景:小程序页面有一个web-view组件,组件嵌套的H5页面,要唤起微信支付. 先讲一下我的项目,首先我是自己开发的一个H5触屏版的商城系统,里面含有购物车,订单支付等功能.然后刚开始,我们公众号里 ...

随机推荐

  1. flume 1.7在windows下的安装与测试

    一.安装 安装java,配置环境变量. 安装flume,下载地址,下载后直接解压即可. 二.运行 创建配置文件:在解压后的文件 apache-flume-1.7.0-bin\conf下创建一个exam ...

  2. Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据&流程分析

    QQ空间说说抓取难度比较大,花了一个星期才研究清楚! 代码请移步到GitHub GitHub地址:https://github.com/20100507/Qzone [没有加入多线程,希望你可以参与进 ...

  3. MVC MVC+EF快速搭建

    MVC+EF快速搭建 一.准备: vs2017(个人用的) 二.开始MVC+EF之旅吧: 1.创建mvc项目: Web-ASP.NET Web Application(.NET Framework)  ...

  4. SSH连不上虚拟机的问题解决

    这几天工作任务不重,今早上班打算在liunx下运行下python脚本.打开VM,SSH突然连不上虚拟机了.网上试了很多方法都不行,最后花费2个小时解决了这一问题. 结合我的实际情况,问题解决如下: 1 ...

  5. Python中的元类(metaclass)

    推荐+收藏:深刻理解Python中的元类(metaclass) 做一些笔记学习学习: 在大多数编程语言中,类就是用来描述如何生成一个对象的代码段,在Python中类也是一个对象,这个(类)对象自身拥有 ...

  6. Android系统--输入系统(十七)Dispatcher线程_分发dispatch

    Android系统--输入系统(十七)Dispatcher线程_分发dispatch 1. 回顾 InputRead线程从输入设备当中得到输入事件 对于读到输入事件稍作处理,比如紧急事件,来电时候按下 ...

  7. shell统计文本中单词的出现次数

    Ubuntu14.04 给定一个文本,统计其中单词出现的次数 方法1 # solution 1 grep与awk配合使用,写成一个sh脚本 fre.sh sh fre.sh wordfretest.t ...

  8. React-native初体验(安卓篇)

    本篇文章主要包括两方面,如何从0开始把RN(react-native)项目整合进入现有Android项目,以及我们做的第一个RN的上线项目遇到的一些坑. 初次做RN项目,我们选择做了一个逻辑相对简单的 ...

  9. 通过HtppWebRequest发送图片到服务器并保存

    之前写的楼主没有测试,后来发现用起来有点小问题 就修改了一下,现在已经亲测可用 完全没有问题了  下面就开始贴代码了 首先将图片装换成功byte 数组 这个path是图片的路径  例如d:12.png ...

  10. cn_office2016

    office 2016是可用激活器激活的,但是激活office 365就有点困难了. 附上office 2016下载地址:http://pan.baidu.com/s/1pLTqPyr 破解机:htt ...