源码目录

在src目录下建立一个request文件夹。里面建立两个文件:

http.js
api.js

源码内容

http.js

import axios from ‘axios’ // 引入axios
import store from ‘…/store/index’ // 引入Vuex
import router from ‘…/router’ // 引入vue-router
import { Message } from ‘element-ui’ //局部引入UI框架组件
// 环境的切换
if (process.env.NODE_ENV === ‘development’) {
axios.defaults.baseURL = ‘https://xxx/’ // 开发环境
} else if (process.env.NODE_ENV === ‘debug’) {
axios.defaults.baseURL = ‘’ // 调试环境
} else if (process.env.NODE_ENV === ‘production’) {
axios.defaults.baseURL = ‘https://xxx/’ // 生产环境
}
axios.defaults.timeout = 10000;
// 请求拦截器
axios.interceptors.request.use(
config => {
if (localStorage.getItem(‘Authorization’)) {
config.headers.Authorization = Bearer + " " + localStorage.getItem(‘Authorization’); //查看是否存在token
return config;
} else if (config.isUpload) {
config.headers = { ‘Content-Type’: ‘multipart/form-data’} // 根据参数是否启用form-data方式
return config;
} else {
config.headers = { ‘Content-Type’: ‘application/json’ }
return config;
}
},
error => {
return Promise.error(error)
})

// 响应拦截器
axios.interceptors.response.use(
// 服务码是200的情况
response => {
if (response.status === 200) {
switch (response.data.code) {
// 未登录
case 3:
Message({
message: ‘未登录’,
type: ‘error’,
offset:380,
duration:1000
});
// 清除登录状态,返回首页
localStorage.removeItem(‘Authorization’)
localStorage.removeItem(‘info’)
store.commit(“changeNull”)
if (router.app._route.name != ‘home’) {
setTimeout(() => {
router.push({
path: ‘/’,
})
}, 1000)
}
break;
// 课程已添加
case 100:
Message({
message: ‘课程已添加’,
type: ‘error’,
offset:380,
duration:1000
});
break;
// token过期
case 5:
Message({
message: ‘登录过期,请重新登录’,
type: ‘error’,
offset:380,
duration:1000
});

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/119116763

最新文章

  1. MySQL高级查询 之 与 Group By 一起使用的函数 和 关键字
  2. .NET 串口通信中断接收,包含0X1A(作为EOF)
  3. Write Your software base on plugin(C/C++ ABI)
  4. 《UML大战需求分析》阅读笔记4
  5. 个人知识管理系统Version1.0开发记录(01)
  6. C#字符串题目
  7. linux tar 增量备份命令
  8. jquery查找父元素、子元素(个人经验总结)
  9. 随机森林之Bagging法
  10. Amazon MWS 上传数据 (三) 提交请求
  11. #Leetcode# 1016. Binary String With Substrings Representing 1 To N
  12. GCD HDU - 2588
  13. [NOI 2017]整数
  14. 【Java基础】10、Java中throw和throws的区别
  15. 一键搭建LNMP脚本
  16. Java EE之Hibernate的HibernateSessionFactory
  17. topcoder srm 420 div1
  18. java 获取两个日期之间的所有天数
  19. gradle项目与maven项目互转
  20. 防雪崩利器:熔断器 Hystrix 的原理与使用

热门文章

  1. findmnt、lsblk、mount 命令查看磁盘、目录挂载、挂载点以及文件系统格式等情况
  2. Codeforces Round #762 (Div. 3), CDE
  3. Redis4.0.14 迁槽失败
  4. Java语言学习day19--7月25日
  5. Not Adding - 题解【数学,枚举】
  6. PHP入门-Window 下利用Nginx+PHP 搭建环境
  7. 阿里云IoT流转到postgresql数据库方案
  8. 详解:什么是VXLAN?
  9. node技术是啥?
  10. Nginx的mirror指令能干啥?