文章目录
二、配置服务器合法域名
三、发起请求
一、限制
出于安全性考虑,小程序官方对数据接口的请求做出了如下两点限制:
- 只能请求HTTPS类型的接口
- 必须先将接口的域名添加到信任列表中
二、配置服务器合法域名
配置步骤:
- 登录微信小程序管理后台 链接
- 点击开发
- 开发管理
- 开发设置
- 服务器域名
- 点击右上角修改requst合法域名
注意事项:
- 域名只支持https协议
- 域名不能使用IP地址或者localhost
- 域名必须经过ICP备案(后端了解)
- 服务器域名一个月内最多可申请5次修改(官网信息有误,社区工作人员已经做出解释)
三、发起请求
(1)GET请求
//发起GET请求
getInfo(){
wx.request({
url: 'https://XXX',//所要请求的接口地址
method:'GET',//请求的方式
data:{
name:'XX',
age:20
},
//请求成功的回调函数
success:(res)=>{
console.log(res)//打印服务器返回的对象
},
//请求失败的回调函数
fail:(res)=>{
console.log('请求数据失败!')
},
//无论请求成功与否都会执行的函数
complete:(res)=>{
console.log('已经发送网络数据请求!')
}
})
},
(2)POST请求
//发起POST请求
getInfo(){
wx.request({
url: 'https://XXX',//所要请求的接口地址
method:'POST',//请求的方式
data:JSON.stringify({
"sbr": "gy",
"fcqk": "2"
}),
header:{'content-type': 'application/json'},
//请求成功的回调函数
success:(res)=>{
console.log(res)//打印服务器返回的对象
},
//请求失败的回调函数
fail:(res)=>{
console.log('请求数据失败!')
},
//无论请求成功与否都会执行的函数
complete:(res)=>{
console.log('已经发送网络数据请求!')
}
})
},
注意:POST请求头header一定要和请求体data相一致,否则将拿不到后端的接口数据
反面案例https://blog.csdn.net/qq_52487066/article/details/128859748?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128859748%22%2C%22source%22%3A%22qq_52487066%22%7D参考文章https://www.cnblogs.com/justyoutiao/p/11385964.html
(3)二者区别
如果你要提交一篇文章,肯定只能用post,因为数据量太大,get请求类似浏览器url请求,你把一篇文章放到url里面肯定请求不过去,如果你只是个简单的传id或者比较少的参数可以用get,还有就是有密码输入建议用post,post请求参数不会以明文显示在url上。
一句话:GET请求可以把参数包含在URL中,但POST请求需要通过request body来传递参数。
参考文章:GET与POST二者的通俗化解释
四、 跳过requst合法域名校验
如果在开发中,后端程序员仅仅提供了http协议的接口,暂时没有提供https协议的接口,此时为了不耽误项目开发进度,可以现在微信开发者工具的项目详情里面的本地设置,将【不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书】勾选上,以此来暂时跳过合法域名的检测机制(这一操作仅限在开发与调试阶段使用!)
五、关于跨域和Ajax的说明
(1)跨域问题只存在于基于浏览器的Web开发中。由于小程序的宿主环境是微信客户端,所以小程序中是不存在跨域问题的。
(2)Ajax技术的核心是依赖于浏览器中的XML HttpRequst这个对象,由于小程序的宿主环境是客户端,所以小程序中没有“ 发起Ajax请求”的说法,而是称为“ 发起网络数据请求 ”
END.