123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /**
- * 全站http配置
- *
- * header参数说明
- * serialize是否开启form表单提交
- * isToken是否需要token
- */
- import {serialize} from '@/util/util'
- import website from '@/const/website'
- import store from '../store'
- import {getStore} from '../util/store'
- import {getToken} from '@/util/auth'
- import NProgress from 'nprogress' // progress bar
- import errorCode from '@/const/errorCode'
- import {Message} from 'element-ui'
- import 'nprogress/nprogress.css' // progress bar style
- axios.defaults.timeout = 30000
- // 返回其他状态吗
- axios.defaults.validateStatus = function (status) {
- return status >= 200 && status <= 500 // 默认的
- }
- // 跨域请求,允许保存cookie
- axios.defaults.withCredentials = true
- // NProgress Configuration
- NProgress.configure({
- showSpinner: false
- })
- // HTTPrequest拦截
- axios.interceptors.request.use(config => {
- NProgress.start() // start progress bar
- const isToken = (config.data || {}).isToken === false
- if (store.getters.access_token && !isToken) {
- config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
- }
- const TENANT_ID = getStore({name: 'tenantId'})
- if (TENANT_ID) {
- config.headers['TENANT_ID'] = TENANT_ID // 租户ID
- }
- // headers中配置serialize为true开启序列化
- if (config.methods === 'post' && config.headers.serialize) {
- config.data = serialize(config.data)
- delete config.data.serialize
- }
- return config
- }, error => {
- return Promise.reject(error)
- })
- // HTTPresponse拦截
- axios.interceptors.response.use(res => {
- NProgress.done()
- const status = Number(res.status) || 200
- const message = res.data.msg || errorCode[status] || errorCode['default']
- if (res.data.code === 1) {
- Message({
- message: message,
- type: 'error'
- })
- return Promise.reject(new Error(message))
- }
- if (status === 401) {
- store.dispatch('FedLogOut').then(() => {
- router.push({
- path: '/login'
- })
- })
- }
- if (status !== 200) {
- Message({
- message: message,
- type: 'error'
- })
- return Promise.reject(new Error(message))
- }
- return res
- }, error => {
- NProgress.done()
- return Promise.reject(new Error(error))
- })
- export default axios
|