/*
|
* @Author: 张嘉彬
|
* @Date: 2021-09-28 14:42:15
|
* @Description:
|
*/
|
import axios from 'axios'
|
// import { Message } from 'element-ui'
|
// import store from '../store'
|
// import {
|
// codeHeaders,
|
// encryptBody
|
// } from './sm'
|
// 创建axios实例
|
const service = axios.create({
|
baseURL: process.env.VUE_APP_CURRENTMODE === 'development' ? '/api' : process.env.VUE_APP_API_BASE_URL,
|
timeout: 15000,
|
withCredentials: true
|
})
|
// request拦截器
|
service.interceptors.request.use((config) => {
|
// 如果没有设置Content-Type,默认application/json
|
if (!config.headers['Content-Type']) {
|
config.headers['Content-Type'] = 'application/json'
|
}
|
// 方法做防重返和防篡改
|
// if (process.env.VUE_APP_ENCRYPTION === '1') {
|
// config = codeHeaders(config)
|
// config = encryptBody(config)
|
// }
|
// 每次发送请求之前判断vuex中是否存在token
|
// 如果存在,则统一在http请求的header都加上token
|
const token = window.localStorage.getItem('access_token')
|
console.log('请求头中的token:', token)
|
if (token) {
|
config.headers.Authorization = 'Bearer ' + token
|
}
|
return config
|
},
|
(error) => {
|
Promise.reject(error)
|
})
|
|
// respone拦截器
|
service.interceptors.response.use(
|
(response) => {
|
return response.data
|
},
|
(error) => {
|
// switch (error.response.data.status) {
|
// case '401':
|
// store.commit('logout')
|
// break
|
// case '403':
|
// // router.push({ name: '403' })
|
// break
|
// default: window.alert(error.response.data.error_description)
|
// }
|
return Promise.reject(error)
|
}
|
)
|
export default service
|