| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- // http/index.js
- import axios from 'axios'
- import router from "@/router"; //根路由对象
- import lang from '../i18n/i18n';
- //创建axios的一个实例
- var $http = axios.create({
- baseURL: import.meta.env.VITE_APP_URL, //接口统一域名
- timeout: 6000, //设置超时
- headers: {
- 'Content-Type': 'application/json;charset=UTF-8;',
- 'Lang': lang.lang
- }
- })
- //请求拦截器
- $http.interceptors.request.use((config) => {
- //若请求方式为post,则将data参数转为JSON字符串
- if (config.method === 'POST') {
- config.data = JSON.stringify(config.data);
- }
- return config;
- }, (error) =>
- // 对请求错误做些什么
- Promise.reject(error));
- //响应拦截器
- $http.interceptors.response.use((response) => {
- //响应成功
- if (response.data.errorNo == 403) {
- router.replace({
- path: '/login',
- query: {
- redirect: router.currentRoute.fullPath
- }
- })
- }
- //响应成功
- if (response.data.errorNo == 402) {
- router.replace({
- path: '/setup',
- query: {
- redirect: router.currentRoute.fullPath
- }
- })
- }
- return response.data;
- }, (error) => {
- //响应错误
- if (error.response && error.response.status) {
- const status = error.response.status
- let message = ""
- switch (status) {
- case 400:
- message = '请求错误';
- break;
- case 401:
- message = '请求错误';
- break;
- case 403:
- router.replace({
- path: '/login',
- query: {
- redirect: router.currentRoute.fullPath
- }
- })
- break;
- case 404:
- message = '请求地址出错';
- break;
- case 408:
- message = '请求超时';
- break;
- case 500:
- message = '服务器内部错误!';
- break;
- case 501:
- message = '服务未实现!';
- break;
- case 502:
- message = '网关错误!';
- break;
- case 503:
- message = '服务不可用!';
- break;
- case 504:
- message = '网关超时!';
- break;
- case 505:
- message = 'HTTP版本不受支持';
- break;
- default:
- message = '请求失败'
- }
- return Promise.reject(error);
- }
- return Promise.reject(error);
- });
- export default $http;
|