新增三码适配
This commit is contained in:
+32
-18
@@ -30,14 +30,16 @@ const request = (option) => {
|
||||
mask: true
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
uni.request({
|
||||
url: URL + option.url,
|
||||
method: option.method,
|
||||
data: option.data,
|
||||
header: {
|
||||
"Content-Type": option.headers && option.headers["Content-Type"] ? option.headers["Content-Type"] : (option.method && option.method.toUpperCase() === 'POST' ? 'application/json' : 'application/x-www-form-urlencoded'),
|
||||
...option.headers,
|
||||
"Content-Type": option.headers && option.headers["Content-Type"] ? option.headers[
|
||||
"Content-Type"] : (option.method && option.method.toUpperCase() === 'POST' ?
|
||||
'application/json' : 'application/x-www-form-urlencoded'),
|
||||
...option.headers,
|
||||
'appid': platformAppid,
|
||||
'Authorization': "Bearer " + uni.getStorageSync('token'),
|
||||
'Clientid': uni.getStorageSync('client_id'),
|
||||
@@ -45,21 +47,23 @@ const request = (option) => {
|
||||
},
|
||||
success(res) {
|
||||
|
||||
|
||||
|
||||
// 检查响应状态码
|
||||
if (res.statusCode !== 200) {
|
||||
console.error(`HTTP状态码错误: ${res.statusCode}`, res.data)
|
||||
|
||||
|
||||
// 为了适应某些服务器的异常响应,我们仍然返回数据
|
||||
if (res.data) {
|
||||
resolve(res.data)
|
||||
return
|
||||
}
|
||||
|
||||
reject({msg: `请求失败,状态码:${res.statusCode}`})
|
||||
|
||||
reject({
|
||||
msg: `请求失败,状态码:${res.statusCode}`
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
// 未登录或 token 失效处理(支持多种后端返回)
|
||||
if (res.statusCode === 401 || res.data?.code === 401 || res.data?.code === 40101) {
|
||||
try {
|
||||
@@ -68,22 +72,32 @@ const request = (option) => {
|
||||
// 计算重定向地址
|
||||
const pages = getCurrentPages()
|
||||
const current = pages && pages.length ? pages[pages.length - 1] : null
|
||||
const route = current && current.route ? ('/' + current.route) : '/pages/index/index'
|
||||
const query = current && current.options ? Object.keys(current.options).map(k => `${k}=${encodeURIComponent(current.options[k])}`).join('&') : ''
|
||||
const route = current && current.route ? ('/' + current.route) :
|
||||
'/pages/index/index'
|
||||
const query = current && current.options ? Object.keys(current.options).map(
|
||||
k => `${k}=${encodeURIComponent(current.options[k])}`).join('&') :
|
||||
''
|
||||
const redirect = encodeURIComponent(query ? `${route}?${query}` : route)
|
||||
// console.log(redirect, "===========");
|
||||
// 跳转到登录页
|
||||
uni.reLaunch({ url: `/subPackages/user/login/index?redirect=${redirect}` })
|
||||
} catch (e) {}
|
||||
uni.reLaunch({
|
||||
url: "/subPackages/user/login/index"
|
||||
})
|
||||
} catch (e) {
|
||||
uni.reLaunch({
|
||||
url: "/subPackages/user/login/index"
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 检查业务状态码
|
||||
if (res.data && res.data.code !== 200) {
|
||||
console.warn(`业务状态码错误: ${res.data.code}`, res.data)
|
||||
|
||||
|
||||
// 判断是否需要忽略数据为空的错误
|
||||
if (option.ignoreEmptyError &&
|
||||
(res.data.code === 500 && res.data.msg &&
|
||||
(res.data.msg.includes('未找到') || res.data.msg.includes('不存在')))) {
|
||||
if (option.ignoreEmptyError &&
|
||||
(res.data.code === 500 && res.data.msg &&
|
||||
(res.data.msg.includes('未找到') || res.data.msg.includes('不存在')))) {
|
||||
// 对于指定需要忽略的错误,返回一个标准的"成功但数据为空"的响应
|
||||
resolve({
|
||||
code: 200,
|
||||
@@ -92,12 +106,12 @@ const request = (option) => {
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
// 仍然返回数据,由业务逻辑处理
|
||||
resolve(res.data)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
resolve(res.data)
|
||||
},
|
||||
fail(err) {
|
||||
|
||||
Reference in New Issue
Block a user