wx.request()的各种写法

post请求,参数为键值对格式

    wx.request({
      url: 'http://192.168.1.103/yiji/skillList.php',
      method: 'POST',
      data:'pageSize=1&pageNum=10',    //参数为键值对字符串
      header: {
        //设置参数内容类型为x-www-form-urlencoded
        'content-type':'application/x-www-form-urlencoded',
        'Accept': 'application/json'
      },
      success: function (res) {
        console.log(res.data)
        that.setData({
          items: res.data
        })
      }

    })
  • 1data那里,我测试的结果是,不可以这样写。要写成:
  • data:{'pageSize':'18', 'pageNum':'10'}
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

POST请求,参数为json格式

可直接参考官方示例

wx.request({
  url: 'test.php', //仅为示例,并非真实的接口地址
  data: {          //参数为json格式数据
     x: '' ,
     y: '',
     z:12
  },
  header: {
      //设置参数内容类型为json
      'content-type': 'application/json'
  },
  success: function(res) {
    console.log(res.data)
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

wx.request()获取响应时

Page({
  data: {
    motto: 'wzh ... '
  },
  //事件处理函数
  onLoad: function (options) {
    var that = this

    //技能资讯列表
    wx.request({
      url: 'http://192.168.1.103/yiji/skillList.php',
      method: 'POST',
      data:'pageSize=1&pageNum=10',
      header: {
        'content-type':'application/x-www-form-urlencoded',
        'Accept': 'application/json'
      },
      success: function (res) {
        console.log(res.data)
        //这样赋值现在是不能将数据传走的,必须使用setData()方法
        //that.data.items = res.data ;
        //官方文档指出必须使用setData()方法才能将数据传走
        that.setData({
          items: res.data
        })
      }

    })
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

参考

  1. 微信官方原文

    Page.prototype.setData() 
    setData 函数用于将数据从逻辑层发送到视图层,同时改变对应的 this.data 的值。 
    setData() 参数格式 
    接受一个对象,以 key,value 的形式表示将 this.data 中的 key 对应的值改变成 value。 
    其中 key 可以非常灵活,以数据路径的形式给出,如 array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义。 
    注意: 
    直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致 
    单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。

  2. 微信小程序wx.request请求回来的数据没有及时显示到页面上–网友

 onLoad: function () {
          var that = this;
      wx.request({
        url:app.globalData.url.api.home,
        success: function(res) {
            var matchsFirst = xxx;
            var matchsSecond= xxx;
            var matchsLast= xxx;
            //这样直接赋值并不会把数据渲染到页面上的    不过 0.9版本的时候这样做是可以的   
            that.data.matchsFirst=matchsFirst;
            that.data.matchsSecond=matchsSecond;
            that.data.matchsLast=matchsLast;
        }});
    };

//应该安这种方式赋值
that.setData({
          matchsFirst:matchsFirst,
          matchsSecond:matchsSecond,
          matchsLast:matchsLast
        });
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值