一:安装axios
    
   
    
     
      -g:
     
     表示全局安装
    
   
npm i axios -g
    
     二:引入、配置axios (vue2)
    
   
    需要在
    
     man.js
    
    入口文件中,通过
    
     Vue 构造函数
    
    和
    
     Prototype 原型对象
    
    全局配置 axios
   
import Vue from 'vue'
import App from './App.vue'
// 1: 导入 axios
import axios from 'axios'
// 2: 配置请求根路径
axios.defaults.baseURL = '接口地址'
// 3: 通过Vue 构造函数的原型对象,全局配置 axios
Vue.prototype.$http = axios
new Vue({
  render: (h) => h(App),
}).$mount("#app");
    
     三:通过axios请求拦截器添加token,保证拥有获取数据的权限
    
   
// axios 请求拦截
axios.interceptors.request.use(config => {
  console.log(config);
// 为请求头对象,添加 ToKen 验证的 Authorization 字段
  config.headers.Authorization = window.sessionStorage.getItem('token')
  // 必须 return 
  return config
})
    
     四:响应拦截器
    
   
axios.intercoptors.response.user(response => {
// 调用 Loading 实例的 close 方法即可关闭 loading 效果
loadingInstance()
return response
})
    五:路由导航守卫
   
    设置从 /login页面 跳转到哪个页面
   
const router = new VueRouter({
  routes,
});
//挂载路由导航守卫
router.beforeEach((to, from, next) => {
  // to 代表将要访问的路径
  // from表示从哪个路径跳转过来的
  // next表示放行 next('/login)强制跳转到login页面
  // 如果用户访问登录页login 不需要拦截直接next放行
  if (to.path === "/login") return next();
  // 获取保存在sessionStorage的token
  const tokenStr = window.sessionStorage.getItem("token");
  // 如果用户控制页面删除了token,则强制跳转到登录页login
  if (!tokenStr) return next("/login");
  // 反之则放行
  next();
});
export def 
版权声明:本文为gsx257318原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
