新建request文件夾 下新建index.js 和index.js?
或者創建units文件放入index.js 和api文件夾放入index.js(api.js)//看公司規范
1. index.js
// 全局請求封裝
// const base_url = 'http://localhost:8080/devapi'
var base_url = process.env.NODE_ENV === 'development' ? 'http://localhost:8080/devapi' : 'http://localhost:8080/devapi'
//這個基本地址可替換成你需要的地址// 請求超出時間
const timeout = 5000// 需要修改token,和根據實際修改請求頭
export default (params) => {let url = params.url;let method = params.method || "get";let data = params.data || {};let header = {// 'Blade-Auth': uni.getStorageSync('token') || '',// 'Content-Type': 'application/json;charset=UTF-8',// 'Authorization': 'Basic c2FiZXI6c2FiZXJfc2VjcmV0',// 'Tenant-Id': uni.getStorageSync('tenantId') || 'xxx', // avue配置相關// ...params.header}if (method == "post") {header = {'Content-Type': 'application/json'};}return new Promise((resolve, reject) => {uni.request({url: base_url + url,method: method,header: header,data: data,timeout,success(response) {const res = response// 根據返回的狀態碼做出對應的操作//獲取成功// console.log(res.statusCode);if (res.statusCode == 200) {resolve(res.data);} else {uni.clearStorageSync()switch (res.statusCode) {case 401:uni.showModal({title: "提示",content: "請登錄",showCancel: false,success() {setTimeout(() => {uni.navigateTo({url: "/pages/login/index",})}, 1000);},});break;case 404:uni.showToast({title: '請求地址不存在...',duration: 2000,})break;default:uni.showToast({title: '請重試...',duration: 2000,})break;}}},fail(err) {console.log(err)if (err.errMsg.indexOf('request:fail') !== -1) {uni.showToast({title: '網絡異常',icon: "error",duration: 2000})} else {uni.showToast({title: '未知異常',duration: 2000})}reject(err);},complete() {// 不管成功還是失敗都會執行uni.hideLoading();uni.hideToast();}});}).catch(() => {});
};
base_url也可創建文件定義
.env
:默認的配置文件,所有環境都會加載這個文件(如果它存在的話)。.env.development
:僅在開發環境(當NODE_ENV
被設置為development
時)加載的配置文件。.env.test
:僅在測試環境(當NODE_ENV
被設置為test
時)加載的配置文件。.env.production
:僅在生產環境(當NODE_ENV
被設置為production
時)加載的配置文件。
2. api.js
// 引入 request 文件
import request from './index.js'// 獲取所有用戶列表
export const getUserListApi = () => {return request({url: '/user/list',method: 'get',header: {} // 自定義})
}
3. 使用
//引入import {getUserListApi} from '@/request/api.js'onLoad() {getUserListApi().then(res => {console.log(res, 'res');}).catch(err => {})},
下篇會解釋如何處理跨域問題