项目背景

创新互联建站服务项目包括上蔡网站建设、上蔡网站制作、上蔡网页制作以及上蔡网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,上蔡网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到上蔡省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
最近在项目开发中,遇到下面这样一个问题:
需求分析
功能实现
分析完问题后,我们来实现功能
安装axios, 这里我们就赘述怎么安装axios.
在 main.js 注册 axios
Vue.use(Vuex) Vue.use(VueAxios, axios) Vue.use(qs)
注:qs,使用axios,必须得安装 qs,所有的Post 请求,我们都需要 qs,对参数进行序列化。
在 request 拦截器实现
axios.interceptors.request.use(
config => {
config.baseURL = '/api/'
config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题
config.timeout = 2500
let token = sessionStorage.getItem('access_token')
let csrf = store.getters.csrf
if (token) {
config.headers = {
'access-token': token,
'Content-Type': 'application/x-www-form-urlencoded'
}
}
if (config.url === 'refresh') {
config.headers = {
'refresh-token': sessionStorage.getItem('refresh_token'),
'Content-Type': 'application/x-www-form-urlencoded'
}
}
return config
},
error => {
return Promise.reject(error)
}
)在 response 拦截器实现
axios.interceptors.response.use(
response => {
// 定时刷新access-token
if (!response.data.value && response.data.data.message === 'token invalid') {
// 刷新token
store.dispatch('refresh').then(response => {
sessionStorage.setItem('access_token', response.data)
}).catch(error => {
throw new Error('token刷新' + error)
})
}
return response
},
error => {
return Promise.reject(error)
}
)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。