微信小程序(请求、限制)

一、数据请求

出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下两个限制:

  • 只能请求 HTTPS 类型的接口。
  • 必须将接口的域名添加到信任列表中。
1.1、配置 request 合法域名

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


image.png

image.png

2.png
  • 注意事项
    域名只支持 https 协议。
    域名不能使用IP 地址或 localhost。
    域名必须经过 ICP 备案。
    服务器域名一个月内最多可申请5 次修改。
1.2、网络数据请求

调用微信小程序提供的 wx.request()方法,可以发起数据请求。

1.2.1、发起GET请求
<button type="primary" bind:tap="getInfo">GET请求</button>
getInfo(){
    wx.request({
        url:'https://www.escook.cn/api/get',  ,// 请求的接口地址,必须基于 https 协议
        method:'GET', // 请求的方式
        data:{               // 发送到服务器的数据
         name:'zs',
         age:20,
        },
        success:(res)=>{   // 请求成功之后的回调函数
            console.log(res)
        }
    })
},
image.png
1.2.2、发起POST请求
<button type="primary" bind:tap="postInfo">POST请求</button>
postInfo(){
    wx.request({
        url:'https://www.escook.cn/api/post',   // 请求的接口地址,必须基于 https 协议
        method:'POST',  // 请求的方式
        data:{   // 发送到服务器的数据
         name:'ls',
         age:20,
        },
        success:(res)=>{  // 请求成功之后的回调函数
            console.log(res)
        }
    })
},
image.png
1.2.3、在页面刚加载时请求数据

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

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
     this.getInfo()
     this.postInfo()
  },
image.png
1.2.4、跳过 request 合法域名校验

如果后端程序员仅仅提供了 http 协议的接口、暂时没有提供 https
协议的接口,此时为了不耽误开发的进度,我们可以在微信开发者工具中,临时开启「开发环境不校验请求域名、TLS 版本及 HTTPS 证书」选项跳过 request 合法域名的校验。


image.png
  • 注意
    跳过 request 合法域名校验的选项,仅限在开发与调试阶段使用!
1.2.5、关于跨域和 Ajax 的说明

跨域问题只存在于基于浏览器的 Web 开发中。由于小程序的宿主环境不是浏览器,而是微信客户端,所以小程序中不存在跨域的问题。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。