12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import axios from 'axios'
- import { Message } from 'element-ui'
- import store from '@/store'
- import { getToken } from '@/utils/auth'
- import router from '@/router'
- import NProgress from 'nprogress' // progress bar
- import 'nprogress/nprogress.css' // progress bar style
- NProgress.configure({ showSpinner: false }) // NProgress Configuration
- // create an axios instance
- const service = axios.create({
- baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
- // withCredentials: true, // send cookies when cross-domain requests
- timeout: 60000 // request timeout
- })
- // 请求拦截
- service.interceptors.request.use(
- config => {
- NProgress.start()
- // 默认以application/json 格式传递参数
- config.headers['Content-Type'] = config.headers['Content-Type'] || 'application/json'
- // 只有以当 Content-Type === application/json 是对参数序列化
- if (config.headers['Content-Type'] === 'application/json') {
- config.data = JSON.stringify(config.data)
- }
- const token = getToken()
- if (token) {
- config.headers['X-Token'] = token
- }
- return config
- },
- error => {
- NProgress.done()
- return Promise.reject(error)
- }
- )
- // 响应拦截
- service.interceptors.response.use(
- /**
- * If you want to get http information such as headers or status
- * Please return response => response
- */
- /**
- * Determine the request status by custom code
- * Here is just an example
- * You can also judge the status by HTTP Status Code
- */
- response => {
- const res = response.data
- // token失效时
- if (res.code === -99) {
- Message({ message: '登录失效,请重新登录!', duration: 1500 })
- setTimeout(() => {
- store.dispatch('user/logout')
- store.dispatch('resetState')
- router.replace('/login')
- }, 500)
- NProgress.done()
- return
- // 返回不成功
- } else if (res.code !== 0) {
- Message({
- message: res.msg || '操作失败了,请重试!',
- type: 'error',
- duration: 1500
- })
- NProgress.done()
- return
- } else {
- NProgress.done()
- return res
- }
- },
- error => {
- console.log('错误:' + error) // for debug
- Message({
- message: error.message,
- type: 'error',
- duration: 500
- })
- NProgress.done()
- return Promise.reject(error)
- }
- )
- export default service
|