在根目录下创建http文件夹,分别创建request、api两个JS文件。
一、判断运行环境
http/request
let URL = ""
if (process.env.NODE_ENV == "development") {
// 本地环境
URL = "http://localhost:3000"
} else {
// 线上环境
URL = "https://api.aslegou.top"
}
// 按需导出地址
export {
URL
}
二、封装uni.request()
http/request
/*
定义并默认导出promise版本的请求方法
params:{
url,
method,
data,
header
}
return:
promise对象
*/
export default (options) => {
// 组装请求地址
let url = URL + "/api/" + options.url;
return new Promise((resolve, reject) => {
uni.request({
// 请求地址
url,
// 请求方式
method: options.method || "get",
// 请求数据
data: options.data || {},
// 请求头
header: options.header || {
"content-type": "application/json",
"authorization":uni.getStorageSync('token') ||''
},
success: res => resolve(res.data),
fail: err => reject(err)
})
})
}
三、全局引入文件
根目录/main.js
// 引入数据请求config文件挂载到vue原型链
import http, { URL } from "./http/config.js"
Vue.prototype.$http = http;
Vue.prototype.$URL = URL;
// 引入api文件将方法挂载到Vue原型链上
import * as api from "./http/api.js";
Vue.prototype.$api = api;
四、定义封装方法
http/api
// 引入调用方法
import request from "./config.js"
// 使用封装方法
// eg:获取商品信息
// request({options})
export const getCate = () => request({
url: 'getcate'
});