uniapp封装request请求
创建
http/api.js
http/request.js
request.js 文件
const baseUrl = 'http://wap.bdpai.cn/box_bbc'; // 域名
// 带 Token 请求
const request = (opts, data) => {
uni.onNetworkStatusChange(function(res) {
if (!res.isConnected) {
uni.showToast({
title: '网络连接不可用!',
icon: 'none'
});
}
return false
});
let token = uni.getStorageSync('token');
// if (token == '' || token == undefined || token == null) {
// uni.showToast({
// title: '账号已过期,请重新登录',
// icon: 'none',
// complete: function() {
// uni.reLaunch({
// url: '/pages/login/index'
// });
// }
// });
// } else {
let httpDefaultOpts = {
url: baseUrl + opts.url,
data: data,
method: opts.method || 'GET',
header: opts.method == 'get' ? {
'token': token,
'X-Requested-With': 'XMLHttpRequest',
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded"
} : {
'token': token,
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json; charset=UTF-8'
},
dataType: 'json',
}
let promise = new Promise(function(resolve, reject) {
uni.request(httpDefaultOpts).then(
(res) => {
// console.log(res)
if (res[1].data.code == 200) {
resolve(res[1])
} else {
if (res[1].data.code == 401) {
// uni.showModal({
// title: '提示',
// content: res[1].data.message,
// success: function (res) {
// if (res.confirm) {
// uni.reLaunch({
// url: '/pages/login/login'
// });
// uni.clearStorageSync();
// }
// }
// });
uni.reLaunch({
url: '/pages/login/login'
});
uni.clearStorageSync();
} else {
resolve(res[1])
// uni.showToast({
// title: '' + res[1].data.message,
// icon: 'none'
// })
}
}
}
).catch(
(response) => {
reject(response)
}
)
})
return promise
// }
};
// 导出去
export default request;
在 api.js 文件
//引入request.js文件
import request from "./request";
// 封装的用户信息方法
export function getUserInfo() {
return request({
url: "/app-user/getUser/99064838", // 这个地址是去掉公共地址剩下的地址
method: "GET", // 请求方式 支持多种方式 get post put delete 等等
// data //发送请求要配置的参数 无参数的情况下也可以不写
});
}
页面中使用
第一种方式使用
<template>
<view>
</view>
</template>
<script>
import {
getUserInfo
} from "@/http/api.js"; // 1.引入需要的接口
export default {
data() {
return {
}
},
onLoad() {
getUserInfo().then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
}
}
</script>
第二种方式使用
<template>
<view>
</view>
</template>
<script>
import {
getUserInfo
} from "@/http/api.js"; // 1.引入需要的接口
export default {
data() {
return {
}
},
async onLoad() {
let res = await getUserInfo()
},
}
</script>