2022-12-04 21:42:59 +08:00

78 lines
2.0 KiB
Python
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 luchRequest from '@/components/luch-request' // 使用npm
import config from '@/config.js';
import errorCode from "@/common/request/errorCode";
import { getToken } from '@/common/utils/auth'
import { toast, showConfirm } from '@/common/utils/common'
import store from '@/store'
// luch-request插件官网https://www.quanzhan.co/luch-request/guide/3.x/#%E5%85%A8%E5%B1%80%E8%AF%B7%E6%B1%82%E9%85%8D%E7%BD%AE
// 创建luchRequest实例
console.log(config.baseUrl)
const http = new luchRequest({
baseURL: config.baseUrl,
timeout: 20000, // 请求超时时间
dataType: 'json',
custom: {
loading: true
},
sslVerify: true,
header: {}
})
// 请求拦截器
http.interceptors.request.use(
config => {
// 在发送请求之前
let token = getToken()
if (token) {
// 添加头信息token验证
config.header["Authorization"] = token
}
return config
},
error => {
return Promise.reject(error)
}
)
// 响应拦截器
http.interceptors.response.use(res => {
// console.log("响应拦截器:", res)
// 未设置状态码则默认成功状态
const code = res.data.code || 200;
// 获取错误信息
const msg = res.data.message || errorCode[code] || errorCode["default"];
if (code === 500) {
toast(msg)
return Promise.reject(new Error(msg));
} else if (code === 401) {
showConfirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then(res => {
if (res.confirm) {
store.dispatch('LogOut')
}
})
return Promise.reject("error");
} else if (code !== 200) {
toast(msg)
return Promise.reject("error");
} else {
return res.data;
}
},
error => {
console.log("请求状态码服务器直接报错", error);
let { errMsg } = error;
if (errMsg == "request:fail") {
errMsg = "接口连接异常";
} else if (errMsg == "request:fail timeout") {
errMsg = "接口连接超时";
} else {
errMsg = error.data.message;
}
toast(errMsg)
return Promise.reject(error);
}
);
export default http