parent
1092347375
commit
08f4b538a9
5 changed files with 189 additions and 4 deletions
@ -0,0 +1,10 @@ |
|||||||
|
export default { |
||||||
|
method: 'get', |
||||||
|
baseURL: 'http://localhost:8001', |
||||||
|
header: { |
||||||
|
'Content-Type': 'application/json;charset=UTF-8' |
||||||
|
}, |
||||||
|
timeout: 10000, |
||||||
|
withCredentials: true, |
||||||
|
responseType: 'json', |
||||||
|
} |
@ -0,0 +1,109 @@ |
|||||||
|
import axios from "axios"; |
||||||
|
import config from "@/request/config.js"; |
||||||
|
import router from "@/router/index.js"; |
||||||
|
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('/login') |
||||||
|
} |
||||||
|
}, |
||||||
|
(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); |
||||||
|
} |
||||||
|
) |
||||||
|
}) |
||||||
|
} |
@ -1,11 +1,19 @@ |
|||||||
<script setup> |
|
||||||
|
|
||||||
</script> |
|
||||||
|
|
||||||
<template> |
<template> |
||||||
<h1>这是登录页面</h1> |
<h1>这是登录页面</h1> |
||||||
|
<el-button @click="testAxios">测试</el-button> |
||||||
</template> |
</template> |
||||||
|
|
||||||
|
<script setup> |
||||||
|
import axios from "axios"; |
||||||
|
function testAxios() { |
||||||
|
axios.get('http://home.rogersun.cn:8888').then(res=>{ |
||||||
|
alert(res.data); |
||||||
|
}).catch(error=>{ |
||||||
|
console.log(error); |
||||||
|
}) |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
<style scoped> |
<style scoped> |
||||||
|
|
||||||
</style> |
</style> |
||||||
|
Loading…
Reference in new issue