/*
* @Description: axios封装
* @Author: 刘
* @email: 1395380336@qq.com
* @Date: 2021-02-04 11:32:45
* @LastEditTime: 2021-02-25 19:10:24
*/
import axios from "axios";
import router from "../router/index";
import NProgress from 'nprogress'
import {
Message
} from "element-ui"
import {
time
} from "echarts";
var baseURL = "/api";
const service = axios.create({
baseURL,
timeout: 1 * 1000,
});
const toLogin = () => {
router.push({
path: "/login",
query: {
// 把当前的路由传递过去 这样我们登陆成功之后就可以从哪里来返回到哪里去
backRouter: router.currentRoute.fullPath,
},
});
};
service.interceptors.request.use((config) => {
NProgress.start();
if (localStorage.getItem('token')) {
config.headers.Authorization = localStorage.getItem('token')
}
return config;
}, (error) => {
console.log(error)
return Promise.reject(error);
});
service.interceptors.response.use((config) => {
NProgress.done();
if (config.status == 200) {
return config.data;
} else {
console.log("请求失败", config);
}
}, error => {
let index = error.message.indexOf('timeout');
if (index > -1) {
return Promise.reject('请求超时了,请重试!')
}
let statusCode = error.response.status;
if (statusCode) {
switch (statusCode) {
case 401:
Message({
type: 'error',
message: "暂无权限,请先登陆哦!"
})
toLogin();
break;
case 403:
Message({
type: 'error',
message: "登陆过期,请重新登陆!"
})
localStorage.removeItem("token");
toLogin();
case 500:
Message({
type: 'error',
message: "服务器异常!"
})
default:
console.log(error.code)
break;
}
}
})
export default service;
Vue-axios封装
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios。 vue-resour...
- vue-axios + axios 入坑基础安装 最近搞VUE,一大堆懵逼。把平时需要安装的! 首先,有时候直接安...
- 使用vue-resource传递数据 在Home.vue组件中传送数据 src/model/Storage.js中...
- 可能有的人对vue-resource 和vue-axios比较陌生,也可能用到了都不知道。他其实就是我们vue请求...