目录
出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下
两个限制:
1.只能请求HTTPS类型的接口
2.必须将接口的域名添加到信任列表中
需求描述:假设在自己的微信小程序中,希望请求https:/ /www.yzq2ty.cn/域名下的接口
配置步骤:登录微信小程序管理后台->开发->开发设置->服务器域名->修改request合法域名
注意事项:
1.域名只支持https协议
2.域名不能使用IP地址或localhost
3.域名必须经过ICP备案
4.服务器域名一个月内最多可申请5次修改
- uni.request({
- url:baseURL+options.url,
- method:options.method || 'GET',
- data:options.data ||{},
- header:options.header||{},
- dataType:options.dataType||'json',
- success: (res) => {
- resolve(res.data)
- },
- fail:(err)=>{
- reject(err)
- }
- })
我的项目在登录时,需要发起POST请求
- import request from '../utils/request.js'
- export function getLogin(username,password){
- return request({
- url:'/login',
- method:'POST',
- data:{
- username,password
- }
- })
- }
在很多情况下,我们需要在页面刚加载的时候,自动请求- -些初始化的数据 。此时需要在页面的onLoad事件中调用获取数据的函数,示例代码如下:
- onLoad() {
- uni.getSystemInfo({//获取系统信息
- success: (res) => {
-
- // #ifdef H5
- this.scrollH = res.windowHeight - uni.upx2px(88)
- //#endif
- // #ifndef H5
- this.scrollH = res.windowHeight - uni.upx2px(225)
- //#endif
-
- }
- }),
- this.gethome()
-
- this.qqmapsdk = new QQMapWX({
- key: '3SUBZ-W5BCQ-FLM5G-GYOPG-D523V-DUFNH'
- });
-
-
- },
如果后端程序员仅仅提供了http协议的接口、暂时没有提供https协议的接口。
此时为了不耽误开发的进度,我们可以在微信开发者工具中,临时
开启「开发环境不校验请求域名、TLS版本及HTTPS证书」
跳过request合法域名的校验。
跨域问题只存在于基于浏览器的Web开发中。由于小程序的宿主环境不是浏览器,而是微信客户端,所以小程序中不存在跨域的问题。
Ajax技术的核心是依赖于浏览器中的XMLHttpRequest这个对象,由于小程序的宿主环境是微信客户端,所以小程序中不能叫做“ 发起Ajax请求”,而是叫做“ 发起网络数据请求”。