-
小程序中网络数据请求的限制
出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下两个限制:
- 只能请求HTTPS类型的接口
- 必须将接口的域名添加到信任列表中
-
配置request合法域名
配置步骤:登录微信小程序管理后台→开发→开发设置→服务器域名→修改request合法域名
注意事项:
- 域名只支持https协议
- 域名不能使用ip地址或localhost
- 域名必须经过ICP备案
- 服务器域名一个月最多可申请5次修改
-
发起GET请求
调用微信小程序提供的wx.request()方法,可以发起GET数据请求
示例代码:
wx.request({
url:’<https://www.escook.cn/api/get‘>, //请求的接口地址,必须基于https协议
method:’GET’, //请求的方式
data:{ //发送到服务器的数据
name:’lx’,
gender:’male’
}),
success:(res)⇒{ //请求成功后的回调函数
console.log(res.data)
}
-
发起POST请求
调用微信小程序提供的wx.request()方法,可以发起POST数据请求
示例代码:
wx.request({
url:’<https://www.escook.cn/api/get‘>, //请求的接口地址,必须基于https协议
method:’POST’, //请求的方式
data:{ //发送到服务器的数据
name:’lx’,
gender:’male’
}),
success:(res)⇒{ //请求成功后的回调函数
console.log(res.data)
}
-
在页面加载时请求数据
在好的情况下,我们需要在页面刚加载的时候,自动请求一些初始化的数据。此时需要在页面的onLoad事件中调用获取数据的函数
-
跳过request合法域名校验
如果后端程序员仅仅提供了http协议的接口,暂时没有提供https协议的接口
此时为了不耽误开发的进度,我们可以在微信开发者工具中,临时开启【开发环境不校验请求域名,TLS版本及HTTPS证书】选项,跳过request合法域名的校验
注意:仅限于开发与调试
-
关于跨域和Ajax
跨域问题只存在于基于浏览器的web开发中。由于小程序的宿主环境不是浏览器,所以小程序不存在跨域问题
Ajax技术核心是依赖于浏览器中的XMLHttpRequest对象,所以小程序不能叫”发起Ajax请求“,而是”发起网络数据请求“