1.小程序中网络数据请求的限制

1.1 处于安全性方面考虑,小程序官方对数据接口的请求做出了如下两个限制:
  • 只能请求HTTPS类型的接口
  • 必须将接口的域名添加到信任列表中

2.配置request合法域名

需求描述:假设在自己的微信小程序中,希望请求https://www.xxx.com/域名下的接口

配置步骤:登录微信小程序管理后台->开发->开发设置->服务器域名->修改request合法域名

注意事项:

  • 域名只支持https协议
  • 域名不能使用Ip地址或者localhost 域名
  • 必须经过ICP备案
  • 服务器域名一个月内最多可申请5次修改

3.发起GET请求

小程序request配置域名_小程序

调用微信小程序提供的wx.request()方法,可以发起GET数据请求,示例代码如下:

getInfo() {
    wx.request({
      url: 'http://xx.cc/xcx.php?text=1', // 请求的地址接口,必须基于https协议
      method: 'GET', // 请求的方式
      data: { // 发送到服务器的数据 
        page: 1
      },
      success: res => {
        wx.showToast({
          title: res.data.data,
          icon: 'success',
          duration: 2000
        }); // 请求成功之后的回调函数
      }
    })
  },
<?php
$text = $_GET["text"];
echo json_encode(["data" => "输入的是" . $text]);

4.发起POST请求

调用微信小程序提供的wx.request()方法,可以发起POST数据请求,示例代码如下:

postInfo{
 wx.request({
        url: 'https://m.douyu.com/api/room/list',  // 请求的地址接口,必须基于https协议
        method:'POST',      // 请求的方式
        data: {            // 发送到服务器的数据 
             name: 'ls',
             age:33
         },
         success: res => {
                console.log(res);   // 请求成功之后的回调函数
            }
        })
},

5.在页面刚加载时请求数据

在很多情况下,我们需要在页面刚加载的时候,自动请求一些初始化的数据。此时需要在页面的onLoad事件中调用获取数据的函数。

小程序request配置域名_小程序request配置域名_02

6.跳过request合法域名校验

小程序request配置域名_网络_03

7.关于跨域和Ajax的说明

  • 跨域问题只存在于基于浏览器的Web开发中。由于小程序的宿主环境不是浏览器,而是微信客户端,所以小程序中不存在跨域的问题。
  • Ajax技术的核心是依赖浏览器中的XMLHttpRequest这个对象,由于小程序的宿主环境是微信客户端,所以小程序中不能叫做“发起Ajax请求”,而是叫做“发起网络数据请求”。