Files
YGChatCS/request/base/request.js
2025-09-20 19:26:16 +08:00

80 lines
1.9 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 { goLogin } from "../../hooks/useGoLogin";
import { BASE_URL } from "./baseUrl";
import { getCurrentConfig } from "@/constant/base";
const clientId = getCurrentConfig().clientId;
const defaultConfig = {
header: {
Authorization: "", // 可在此动态设置 token
"Content-Type": "application/json",
clientId: clientId,
},
};
function request(url, args = {}, method = "POST", customConfig = {}) {
// 判断 url 是否以 http 开头
if (!/^http/.test(url)) {
url = BASE_URL + url;
}
// 动态获取 token
const token = uni.getStorageSync("token");
let header = {
...defaultConfig.header,
...customConfig.header,
};
// 判断是否需要 token
if (customConfig.noToken) {
delete header.Authorization;
} else {
if (token) {
header.Authorization = `Bearer ${token}`;
}
}
console.log("请求头customConfig:" + JSON.stringify(customConfig));
const config = {
...defaultConfig,
...customConfig,
header,
};
console.log("请求接口:" + url);
console.log("请求头:" + JSON.stringify(config));
console.log("请求参数:" + JSON.stringify(args));
return new Promise((resolve, reject) => {
uni.request({
url,
data: args,
method,
...config,
success: (res) => {
console.log("请求响应:" + JSON.stringify(res));
resolve(res.data);
if (res.statusCode && res.statusCode === 424) {
console.log("424错误重新登录");
goLogin();
}
},
fail: (err) => {
console.error("请求失败:", err);
reject(err);
},
});
});
}
// 默认 POST
request.post = function (url, args = {}, config = {}) {
return request(url, args, "POST", config);
};
// 支持 GET
request.get = function (url, args = {}, config = {}) {
return request(url, args, "GET", config);
};
export default request;