|
|
- import config from "@/config";
-
- export default function request ( {
- url = '',
- method = 'GET',
- data = {},
- showLoading = false,
- header = {}
- } ) {
- // console.log('我是request的参数', url, method, data, showLoading, header);
-
- if (showLoading) uni.showLoading({title: '加载中'})
- const token = uni.getStorageSync('token')
- if (token) {
- header['X-Access-Token'] = token
- }
- return new Promise((resolve, reject) => {
- uni.request({
- url: config.baseURL + url,
- method,
- data,
- header: {
- 'Content-Type': 'application/x-www-form-urlencoded',
- ...header
- },
- success: (res) => {
- console.log(`Success ${method} ${url}`, res);
-
- // 处理HTTP状态码错误
- if (res.statusCode !== 200){
- const error = {
- code: res.statusCode,
- message: '网络请求错误'
- }
-
- switch (res.statusCode) {
- case 401:
- case 403:
- uni.removeStorageSync('token')
- uni.reLaunch({ url: '/subPages/login/login' })
- error.message = '登录已过期,请重新登录'
- break;
- case 404:
- error.message = '资源不存在'
- break;
- case 500:
- error.message = '服务器错误'
- }
-
- uni.showToast({
- title: error.message,
- icon: 'none'
- })
-
- reject(error)
- return
- }
-
- if (res.data.code === 200 && res.data.result !== null) {
- resolve(res.data) // 成功返回数据
- } else {
- const errorMsg = res.data.message || '请求失败'
-
- uni.showToast({
- title: errorMsg,
- icon: 'none'
- })
-
- reject({
- code: res.data.code,
- message: errorMsg,
- data: res.data
- })
- }
- },
- fail: (err) => {
- console.log(`Fail ${method} ${url}`, err);
- const errorMsg = err.errMsg || '请求失败'
-
- uni.showToast({
- title: errorMsg,
- icon: 'none'
- })
-
- reject({
- code: -1,
- message: errorMsg,
- data: err
- })
- },
- complete: () => {
- if (showLoading) {
- uni.hideLoading()
- }
- }
- })
- })
- }
|