70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
import config from '../config/index.js';
|
||
export const env = 'production'; //production development //开发of线上 改这里就行
|
||
const BASE = config[env];
|
||
const request = (options) => {
|
||
console.log("options" + JSON.stringify(options), BASE.BASE_URL)
|
||
return new Promise((resolve, reject) => {
|
||
// 处理GET请求参数
|
||
let url = BASE.BASE_URL + options.url;
|
||
console.log("url" + url)
|
||
if (options.method === 'GET' && options.data) {
|
||
// 使用qs序列化参数
|
||
const params = Object.keys(options.data)
|
||
.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(options.data[key])}`)
|
||
.join('&');
|
||
url += `?${params}`;
|
||
}
|
||
|
||
const config = {
|
||
url: url,
|
||
method: options.method || 'GET',
|
||
data: options.method !== 'GET' ? options.data : {},
|
||
header: options.header || {},
|
||
timeout: 30000,
|
||
success: (res) => {
|
||
console.log(res, 'resss');
|
||
if (res.data.code === 401) {
|
||
uni.removeStorageSync('token');
|
||
uni.removeStorageSync('clientID');
|
||
uni.showToast({
|
||
title: '登录已过期,请重新登录',
|
||
icon: 'none',
|
||
duration: 2000,
|
||
complete: () => {
|
||
setTimeout(() => {
|
||
uni.reLaunch({
|
||
url: '/pages/common/login/index'
|
||
});
|
||
}, 3000);
|
||
}
|
||
});
|
||
// 返回一个pending的Promise,中断当前的Promise链
|
||
return new Promise(() => { });
|
||
}
|
||
resolve(res.data);
|
||
},
|
||
fail: (err) => {
|
||
console.log("ex=", err);
|
||
reject(err);
|
||
}
|
||
};
|
||
|
||
if (!options.url.includes('/login')) {
|
||
const token = uni.getStorageSync('token');
|
||
const clientid = uni.getStorageSync('clientID');
|
||
if (token) {
|
||
config.header['Authorization'] = 'Bearer ' + token;
|
||
config.header['clientid'] = clientid;
|
||
}
|
||
}
|
||
if (!config.header['Content-Type']) {
|
||
config.header['Content-Type'] = 'application/json';
|
||
}
|
||
uni.request(config);
|
||
});
|
||
};
|
||
// 导出基础URL以便其他地方使用
|
||
export const baseURL = BASE.BASE_URL;
|
||
export const getToken = () => uni.getStorageSync('token'); // 获取token的方法
|
||
export const clientid = () => uni.getStorageSync('clientID');
|
||
export default request; |