在src下创建api文件夹
–创建api.js和request.js两个文件
request.js文件中代码
import Vue from 'vue'
import axios from 'axios'
import QS from 'qs';
import {
Message } from 'element-ui';
import router from '../router';
import store from '@/store/index'
// 请求超时时间
axios.defaults.timeout = 15000;
// post请求头
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
// 请求拦截器
axios.interceptors.request.use(config => {
// 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了
// const token = window.localStorage.getItem("token");
config.headers['token'] = Vue.cookie.get('token') // 请求头带上token
return config
},
error => {
return Promise.reject(error);
}
);
// 响应拦截器
axios.interceptors.response.use(
response => {
if (response.status === 200) {
return Promise.resolve(response);
} else {
return Promise.reject(response);
}
},
// 服务器状态码不是200的情况
error => {
if (error.response.status) {
switch(error.response.status) {
//401:未登录
//未登录则跳转登录页面,并携带当前页面的路径
//在登录成功后返回当前页面,这一步需要在登录页操作
case 401:
router.replace({
path:'/login',
query: