fix:修复请求问题

This commit is contained in:
橙子
2023-04-02 00:17:07 +08:00
parent ad4fc6ea9b
commit b90962943a
3 changed files with 65 additions and 20 deletions

View File

@@ -48,6 +48,7 @@ export function logout() {
// 获取验证码 // 获取验证码
export function getCodeImg() { export function getCodeImg() {
return request({ return request({
url: '/account/captcha-image', url: '/account/captcha-image',
headers: { headers: {

View File

@@ -33,6 +33,7 @@ const service = axios.create({
// request拦截器 // request拦截器
service.interceptors.request.use(config => { service.interceptors.request.use(config => {
// 是否需要设置 token // 是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
// 是否需要防止数据重复提交 // 是否需要防止数据重复提交
@@ -40,6 +41,8 @@ service.interceptors.request.use(config => {
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
} }
// get请求映射params参数 // get请求映射params参数
if (config.method === 'get' && config.params) { if (config.method === 'get' && config.params) {
let url = config.url + '?' + tansParams(config.params); let url = config.url + '?' + tansParams(config.params);
@@ -70,6 +73,7 @@ service.interceptors.request.use(config => {
} }
} }
} }
return config return config
}, error => { }, error => {
Promise.reject(error) Promise.reject(error)
@@ -78,16 +82,19 @@ service.interceptors.request.use(config => {
// 响应拦截器 // 响应拦截器
service.interceptors.response.use(res => { service.interceptors.response.use(res => {
// 未设置状态码则默认成功状态 // 未设置状态码则默认成功状态
const code = res.data.code || 200; const code = res.status || 200;
// 获取错误信息 // 获取错误信息
const msg = errorCode[code] || res.data.message || errorCode['default'] const msg = errorCode[code] || res.data.message || errorCode['default']
// 二进制数据则直接返回 // 二进制数据则直接返回
if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){ if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){
return res return res
} }
if (code === 401) { if (code === 401) {
if (!isRelogin.show) { if (!isRelogin.show) {
isRelogin.show = true; isRelogin.show = true;
ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
confirmButtonText: '重新登录', confirmButtonText: '重新登录',
@@ -103,8 +110,11 @@ service.interceptors.response.use(res => {
isRelogin.show = false; isRelogin.show = false;
}); });
} }
return Promise.reject('无效的会话,或者会话已过期,请重新登录。') return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
} else if (code === 500) { }
else if (code === 500) {
ElMessage({ ElMessage({
message: msg, message: msg,
type: 'error' type: 'error'
@@ -116,28 +126,60 @@ service.interceptors.response.use(res => {
}) })
return Promise.reject('error') return Promise.reject('error')
} else { } else {
return Promise.resolve(res) return Promise.resolve(res)
} }
}, },
error => { error=>{
const response=error.response;
let { message } = error; const code=response.status
const msg=response.data.message
if (message == "Network Error") { if(code==403)
message = "后端接口连接异常"; {
}
else if (message.includes("timeout")) {
message = "系统接口请求超时";
}
else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
ElMessage({ ElMessage({
message: message, message: msg,
type: 'error', type: 'error'
duration: 5 * 1000
}) })
return Promise.reject(error) }
else if (code === 401) {
if (!isRelogin.show) {
isRelogin.show = true;
ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
isRelogin.show = false;
useUserStore().logOut().then(() => {
location.href = '/index';
})
}).catch(() => {
isRelogin.show = false;
});
}
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
}
else if (code === 500) {
ElMessage({
message: msg,
type: 'error'
})
return Promise.reject(new Error(msg))
} else if (code !== 200) {
ElNotification.error({
title: msg
})
return Promise.reject('error')
} else {
return Promise.resolve(res)
}
} }
) )

View File

@@ -116,6 +116,7 @@ function handleLogin() {
router.push({ path: redirect.value || "/" }); router.push({ path: redirect.value || "/" });
}).catch(() => { }).catch(() => {
loading.value = false; loading.value = false;
// 重新获取验证码 // 重新获取验证码
if (captchaEnabled.value) { if (captchaEnabled.value) {
getCode(); getCode();
@@ -126,6 +127,7 @@ function handleLogin() {
} }
function getCode() { function getCode() {
getCodeImg().then(res => { getCodeImg().then(res => {
captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled; captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled;
if (captchaEnabled.value) { if (captchaEnabled.value) {