Commit 3af91219 authored by smallwei's avatar smallwei

修复axios

parent 9eff5a70
...@@ -7,10 +7,14 @@ ...@@ -7,10 +7,14 @@
import axios from 'axios' import axios from 'axios'
import router from '../router/router' import router from '../router/router'
import store from '../store' import store from '../store'
import { getToken } from '@/util/auth' import {
getToken
} from '@/util/auth'
import NProgress from 'nprogress' // progress bar import NProgress from 'nprogress' // progress bar
import errorCode from '@/const/errorCode' import errorCode from '@/const/errorCode'
import { Message } from 'element-ui' import {
Message
} from 'element-ui'
import 'nprogress/nprogress.css' // progress bar style import 'nprogress/nprogress.css' // progress bar style
axios.defaults.timeout = 30000; axios.defaults.timeout = 30000;
//返回其他状态吗 //返回其他状态吗
...@@ -19,50 +23,44 @@ axios.defaults.timeout = 30000; ...@@ -19,50 +23,44 @@ axios.defaults.timeout = 30000;
// }; // };
//跨域请求,允许保存cookie //跨域请求,允许保存cookie
axios.defaults.withCredentials = true; axios.defaults.withCredentials = true;
NProgress.configure({ showSpinner: false }) // NProgress Configuration NProgress.configure({
const requestMap = new Map(); showSpinner: false
}) // NProgress Configuration
//HTTPrequest拦截 //HTTPrequest拦截
axios.interceptors.request.use(config => { axios.interceptors.request.use(config => {
const keyString = JSON.stringify(Object.assign({}, { url: config.url, method: config.method }, config.data)); NProgress.start() // start progress bar
if (requestMap.get(keyString)) { if (store.getters.access_token) {
return Promise.reject('code:000') config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
} }
requestMap.set(keyString, true);
config = Object.assign(config, { _keyString: keyString });
NProgress.start() // start progress bar
if (store.getters.access_token) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
}
if (sessionStorage.getItem('tenantId')) { if (sessionStorage.getItem('tenantId')) {
config.headers['TENANT_ID'] = sessionStorage.getItem('tenantId') // 租户ID config.headers['TENANT_ID'] = sessionStorage.getItem('tenantId') // 租户ID
} }
return config return config
}, error => { }, error => {
console.log('err' + error) // for debug console.log('err' + error) // for debug
return Promise.reject(error) return Promise.reject(error)
}) })
//HTTPresponse拦截 //HTTPresponse拦截
axios.interceptors.response.use(res => { axios.interceptors.response.use(res => {
NProgress.done(); NProgress.done();
// 重置requestMap return res
const config = Object.assign(res.config);
requestMap.set(config._keyString, false);
return res
}, error => { }, error => {
NProgress.done() NProgress.done()
let errMsg = error.toString() let errMsg = error.toString()
let code = errMsg.substr(errMsg.indexOf('code') + 5) let code = errMsg.substr(errMsg.indexOf('code') + 5)
Message({ Message({
message: errorCode[code] || errorCode['default'], message: errorCode[code] || errorCode['default'],
type: 'error' type: 'error'
})
if (parseInt(code) === 401 || parseInt(code) === 403) {
store.dispatch('FedLogOut').then(() => {
router.push({
path: '/login'
});
}) })
if (parseInt(code) === 401 || parseInt(code) === 403) { }
store.dispatch('FedLogOut').then(() => { return Promise.reject(new Error(error))
router.push({ path: '/login' });
})
}
return Promise.reject(new Error(error))
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment