1
0
forked from dyf/APP
Files
APP/utils/request.js
2025-11-20 16:40:14 +08:00

70 lines
2.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;