92 lines
3.2 KiB
JavaScript
92 lines
3.2 KiB
JavaScript
// common/http.js
|
|
import _config from './config'; // 导入私有配置
|
|
import service from './service'; // 这里是之前项目配置本地存储账号信息的,不需要可以删除
|
|
import store from '../store'; // 引入 Vuex store
|
|
|
|
export default function $http(options) {
|
|
// 从 Vuex store 中获取后端地址
|
|
const backendUrl = store.state.backendUrl;
|
|
|
|
// 进行url字符串拼接
|
|
options.url = backendUrl + options.url;
|
|
console.log(options.url);
|
|
|
|
return new Promise((resolve, reject) => {
|
|
// 拦截请求
|
|
_config.header.Authorization = service.getToken(); // 这里是调用本地存储配置文件的方法,不需要可以改下面这种方式
|
|
_config.header['Content-type'] = 'application/json;charset=utf-8';
|
|
// _config.header['Content-type'] = 'application/x-www-form-urlencoded;charset=utf-8'
|
|
// _config.header.Authorization = uni.getStorageSync(STATE_KEY);
|
|
|
|
uni.request({
|
|
..._config,
|
|
...options,
|
|
complete: (response) => {
|
|
console.log(response);
|
|
// 登录失效这边后台是返回403看情况
|
|
if (response.data.code === 403) {
|
|
// 返回登录界面
|
|
uni.navigateTo({
|
|
url: '/pages/login/login'
|
|
});
|
|
uni.showToast({
|
|
icon: 'none',
|
|
title: '登录已失效'
|
|
});
|
|
// 清空token
|
|
service.addToken('');
|
|
}
|
|
|
|
// request 请求访问成功 这里返回的时候response.data才是请求返回的结果errorCode
|
|
if (response.data.code === 200 || response.data.status === "success") {
|
|
resolve(response.data);
|
|
} else {
|
|
// 接口请求失败
|
|
resolve(response.data);
|
|
// console.log(response.data)
|
|
// 处理catch 请求,不在本页面之外处理,统一在这里处理
|
|
if (options.handle) {
|
|
reject(response);
|
|
} else {
|
|
try {
|
|
Promise.reject(response).catch(err => {
|
|
// console.error(err);
|
|
_page_error(response.statusCode || response.errMsg);
|
|
});
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
// 接口錯誤
|
|
function _error(err, msg = '') {
|
|
switch (err) {
|
|
case 400:
|
|
console.error(msg);
|
|
// 错误码400的处理方式
|
|
break;
|
|
}
|
|
}
|
|
|
|
// request 錯誤
|
|
function _page_error(err) {
|
|
switch (err) {
|
|
case 401:
|
|
// 错误码401的处理方式
|
|
console.error("请求被拒绝");
|
|
break;
|
|
case 404:
|
|
// 错误码404的处理方式
|
|
console.error("没有找到页面");
|
|
break;
|
|
case 405:
|
|
console.error("错误的请求");
|
|
break;
|
|
}
|
|
}
|