方法一,利用官网的uni.request方法
uni.getSystemInfo({
success:(res) =>{
res.windowHeight - uni.upx2px(80);
}
})
uni.request({
url: '/api/index_category/data',
method: 'GET',
success: res => {
console.log(res);
},
fail: () => {
console.log('请求失败');
},
complete: () => {
console.log('请求完成');
}
})
方法二,promise请求
uni.request({
url: '/api/index_category/data123',
method: 'GET'
}).then(data=>{
let [error,result] = data
// 错误
if (error) {
return console.log(error.errMsg);
}
// 失败
if(result.statusCode !== 200){
return console.log(result.data.msg); //错误信息
}
// 成功
console.log(result.data);
})
请求同步,Await 与Async
async onLoad(){
let [error,result] = await uni.request({
url: '/api/index_category/data123',
method: 'GET'
})
// 错误
if (error) {
return console.log(error.errMsg);
}
// 失败
if(result.statusCode !== 200){
return console.log(result.data.msg); //错误信息
}
// 成功
console.log(result.data);
封装promise,返回promise对象
async onload(){
return await new Promise((resolve, reject)=>{
uni.request({
url: '/api/index_category/data123',
method: 'GET'
}).then(data=>{
let [error,result] = data
// 错误
if (error) {
return console.log(error.errMsg);
}
// 失败
if(result.statusCode !== 200){
return console.log(result.data.msg); //错误信息
}
// 成功
console.log(result.data);
})
})
}
加粗样式后端接口是第三方涉及跨域问题,由于我自己没有后台服务器,无法采用cors进行设置响应头,所以采用和vue原理一样的nginx代理
"h5": {
"devServer": {
"port": 8009,
"disableHostCheck": true,
"proxy": {
"/api": {
"pathRewrite":{"^/api":"/"},
"target": "http://ceshi3.dishait.cn/api",
"changeOrigin": true,
"secure": false
//http:接口
}
}
}
}