12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import axios from 'axios'
- import base from './base'
- import store from '../../src/store/store.js'
- import ElementUI from 'element-ui'
- import router from '../../src/router/index.js'
- axios.defaults.baseURL = base.url
- const http = axios.create({
- timeout: 1000 * 300,
- withCredentials: true,
- headers: {
- 'Content-Type': 'application/json; charset=utf-8'
- }
- })
- /**
- * 请求拦截
- */
- var timer = '' //删除定时器
- var DoNotExecute = false //当请求成功后不再执行
- http.interceptors.request.use(config => {
- config.headers['token'] = window.sessionStorage.getItem('token') // 请求头带上token
- if (store.state.controlload == false) {
- timer = setTimeout(function() {
- if (DoNotExecute == false) {
- store.commit('controlload', true)
- }
- clearTimeout(timer)
- }, 500);
- }
- return config
- }, error => {
- return Promise.reject(error)
- })
- /**
- * 响应拦截
- */
- http.interceptors.response.use(response => {
- if (store.state.controlload) {
- store.commit('controlload', false)
- } else {
- DoNotExecute = true
- }
- if (response.data && response.data.code === 401) { // 401, token失效
- ElementUI.Message.error("请重新登录");
- router.push({
- name: 'slgn'
- })
- } else if (response.data.code < 0) {
- if (response.data.code == -2) {
- return response
- } else {
- ElementUI.Message.error(response.data.msg);
- // 没有返回值会报错
- return "错误"
- }
- } else {
- return response
- }
- }, error => {
- if (store.state.controlload) {
- store.commit('controlload', false)
- } else {
- DoNotExecute = true
- }
- return Promise.reject(error.message)
- })
- http.adornUrl = (s) => {
- return 'proxyApi'
- }
- export default http;
|