一、微信小程序运行环境
微信小程序的 javascript 运行环境和浏览器不同,页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件,JsCore中也没有 XmlhttpRequest对象,所以jquery 、zepto、axios这些在小程序中都不能用。
在微信小程序中,可以使用官方提供的wx.request进行异步请求操作
二、原生语法发送异步请求
在不进行封装的情况下,我们在项目的页面当中,可以小程序官方提供的API发起异步请求,例如:
wx.request({
url: 'https://domain.com/1.1/classes/Stu',
method:'POST',
header:{
'X-LC-Id': '自己的id',
'X-LC-Key': ' 自己的key',
'Content-Type': ' application/json'
},
data:{
"name":"张无忌",
"score":80,
"gender":1
},
success:(res)=>{
console.log(res);
}
})
三、自定义封装异步请求
当然,从上面的异步请求代码可以看出,如果我们在每一个页面中,都直接用wx.request发起请求,会导致如下情况:
- baseURL没有统一提取,不方便开发环境、生产环境之间的灵活切换
- header请求头所携带的信息,需要每次异步请求的时候手动追加
- 代码冗余度高
所以我们可以基于Promise对象,将wx.request进行二次封装
let base = 'https://domain.com/1.1'
function fetchData(url,data,method="GET")