Vue ajax Axios 二次封装,请求拦截器,相应拦截其
axios 二次封装 涵盖基础地址、判断是否有token、解析data、请求拦截器、响应拦截器
·
涵盖基础地址、判断是否有token、解析data、请求拦截器、响应拦截器
import axios from 'axios'
import store from '@/store'
export const baseURL = 'www.baidu.com'
const instance = axios.create({
baseURL,
timeout: 5000
})
// 请求拦截器
instance.interceptors.request.use(config => {
const profile = store.state.user.profile
if (profile && profile.token) {
config.headers.authorization = 'Bearer ' + profile.token
}
return config
}, err => Promise.reject(err))
// 响应拦截器
instance.interceptors.response.use(config => {
return config.data
}, err => Promise.reject(err))
/**
* @param { String } url url地址
* @param { String } method 方法名 -> get post
* @param { Object } submitData 传递的参数 -> 对象
*/
export default (url, method, submitData) => {
return instance({
url,
method,
[method.toLowerCase() === 'get' ? 'params' : 'data']: submitData
})
}
更多推荐
已为社区贡献1条内容
所有评论(0)