不需要用vuex,只需要用到axios一样可以实现登录拦截,想后台请求数据

时间:2021-10-21 19:47:21
1.env.js配置文件
import axios from 'axios'
// 创建axios实例
const service = axios.create({
  baseURL: 'http://110.110.1.110:11000', //的base_url
  timeout: 20000,                  // 请求超时时间
});
export default service;

2。在main文件里面引入env.js
import env from './config/env'
Vue.prototype.$http = env

3.在登录页面请求到token后绑定在sessionStorage里面
sessionStorage.setItem('encryptToken',token)//保存token

4.在index首页再次引入axios,然后在vue.js的生命周beforeCreate插入下面的代码
beforeCreate(){
  console.log("创建前")
  // Add a request interceptor
  this.$http.interceptors.request.use(function (config) {

   let encryptToken=sessionStorage.getItem('encryptToken');
   if (encryptToken) {
     config.headers['Authorization'] = encryptToken; // 让每个请求携带token--['
Authorization
']为自定义key 请根据实际情况自行修改
} console. log ( "请求前执行") return config ; } , function (error) { // Do something with request error return Promise. reject(error) ; }) ;} ,