parent
							
								
									02fcf492b9
								
							
						
					
					
						commit
						2f27556b61
					
				
				 7 changed files with 191 additions and 5 deletions
			
			
		| @ -0,0 +1,10 @@ | ||||
| export default { | ||||
|     method: 'get', | ||||
|     baseURL: 'http://localhost:8001', | ||||
|     headers: { | ||||
|         'Content-Type': 'application/json;charset=UTF-8' | ||||
|     }, | ||||
|     timeout: 10000, | ||||
|     withCredentials: true, | ||||
|     responseType: 'json', | ||||
| } | ||||
| @ -0,0 +1,111 @@ | ||||
| import axios from "axios"; | ||||
| import config from "@/request/config.js"; | ||||
| import router from "@/router"; | ||||
| import { ElMessage } from 'element-plus'; | ||||
| 
 | ||||
| export default function request(options) { | ||||
|     return new Promise((resolve, reject) => { | ||||
|         const instance = axios.create({...config}); | ||||
|         // 请求拦截器
 | ||||
|         instance.interceptors.request.use( | ||||
|             (config) => { | ||||
|                 let token = localStorage.getItem('pm_token'); | ||||
|                 if (token) { | ||||
|                     config.headers.token = token; | ||||
| 
 | ||||
|                 } else { | ||||
|                     router.push('/update') | ||||
|                 } | ||||
|                 return config; | ||||
|             }, | ||||
|             (error) => { | ||||
|                 console.log("request:", error); | ||||
|                 if (error.code === "ECONNABORTED" && error.message.indexOf("timeout") !== -1) { | ||||
|                     ElMessage({message: "请求超时", type: "error", showClose: true}); | ||||
|                 } | ||||
|                 return Promise.reject(error) | ||||
|             } | ||||
|         ); | ||||
|         // 响应拦截器
 | ||||
|         instance.interceptors.response.use( | ||||
|             (response) => { | ||||
|                 return response.data; | ||||
|             }, | ||||
|             (err) => { | ||||
|                 if (err && err.response) { | ||||
|                     switch (err.response.status) { | ||||
|                         case 400: | ||||
|                             err.message = "请求错误"; | ||||
|                             break | ||||
|                         case 401: | ||||
|                             err.message = "未授权"; | ||||
|                             break | ||||
|                         case 403: | ||||
|                             err.message = "拒绝访问"; | ||||
|                             break | ||||
|                         case 404: | ||||
|                             err.message = `请求地址出错:${err.response.config.url}`; | ||||
|                             break | ||||
|                         case 408: | ||||
|                             err.message = "请求超时"; | ||||
|                             break; | ||||
|                         case 500: | ||||
|                             err.message = "服务器内部错误"; | ||||
|                             break; | ||||
|                         case 501: | ||||
|                             err.message = "服务未实现"; | ||||
|                             break; | ||||
|                         case 502: | ||||
|                             err.message = "网关错误"; | ||||
|                             break; | ||||
|                         case 503: | ||||
|                             err.message = "服务不可用"; | ||||
|                             break; | ||||
|                         case 504: | ||||
|                             err.message = "网关超时"; | ||||
|                             break; | ||||
|                         case 505: | ||||
|                             err.message = "HTTP版本不受支持"; | ||||
|                             break; | ||||
|                         default: | ||||
|                     } | ||||
|                 } | ||||
|                 console.log(err); | ||||
|                 if (err.message) { | ||||
|                     ElMessage({message: err.message, type: 'error', showClose: true}); | ||||
|                 } | ||||
|                 return Promise.reject(err); | ||||
|             } | ||||
|         ); | ||||
|         //请求处理
 | ||||
|         instance(options).then( | ||||
|             /** | ||||
|              * response 统一格式 | ||||
|              * { | ||||
|              *    code: 200, | ||||
|              *    msg: '消息[String]', | ||||
|              *    data: '返回数据[Any]' | ||||
|              * } | ||||
|              * code说明: | ||||
|              * 200 成功 | ||||
|              * -1 失败,可能网络不通,可能后台服务异常或其它异常 | ||||
|              * -2 登录失效跳回登录 | ||||
|              */ | ||||
|             (res) => { | ||||
|                 if (res.code === 200) { | ||||
|                     resolve(res); | ||||
|                 }else{ | ||||
|                     if (res.code === -2) { | ||||
|                         router.push("/login"); | ||||
|                     } | ||||
|                     ElMessage({message: res.msg || "操作失败", type: "error", showClose: true}); | ||||
|                     reject(res); | ||||
|                 } | ||||
|             } | ||||
|         ).catch( | ||||
|             (error) => { | ||||
|                 reject(error); | ||||
|             } | ||||
|         ) | ||||
|     }) | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue