axios拦截器的使用
import axios from 'axios'
import Cookies from 'js-cookie'
import { Message, MessageBox } from 'element-ui'
const service = axios. create ( {
baseURL: 'localhost:8080' ,
timeout: 5000
} )
service. interceptors. request. use (
config => {
config. headers[ 'X-Token' ] = Cookies. get ( 'key名称' )
return config
} ,
error => {
return Promise. reject ( error)
}
)
service. interceptors. response. use (
response => {
const res = response. data
if ( res. code !== 200 ) {
Message ( {
message: res. message || 'Error' ,
type: 'error' ,
duration: 5 * 1000
} )
if ( res. code === 50008 || res. code === 50012 || res. code === 50014 ) {
MessageBox. confirm ( '您的token已失效,请重新登录' , 'Confirm logout' , {
confirmButtonText: 'Re-Login' ,
cancelButtonText: 'Cancel' ,
type: 'warning'
} ) . then ( ( ) => {
store. dispatch ( 'LogOut' ) . then ( ( ) => {
location. reload ( )
} )
} )
}
return Promise. reject ( new Error ( res. message || 'Error' ) )
} else {
return res
}
} ,
error => {
Message ( {
message: error. message,
type: 'error' ,
duration: 5 * 1000
} )
return Promise. reject ( error)
}
)