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