女装网站欣赏,北京诚通新新建设有限公司网站,长宁深圳网站建设公司,上海网站设计网页设计干前端工作也有一小段时间了。这不#xff0c;研究了下vue项目里的无感刷新。可能有经验的大佬都知道也会敲。大佬就略过吧。 vue无感刷新#xff0c;大致的原理就是后端返回两个token给前端。#xff08;一个是请求的token#xff0c;另一个是到期或者快到期后换取新token…干前端工作也有一小段时间了。这不研究了下vue项目里的无感刷新。可能有经验的大佬都知道也会敲。大佬就略过吧。 vue无感刷新大致的原理就是后端返回两个token给前端。一个是请求的token另一个是到期或者快到期后换取新token的那个token
import axios from axios
import { MessageBox, Message } from element-ui//业务请求的接口
const service axios.create({baseURL: process.env.VUE_APP_BASE_API, timeout: 5000 // request timeout
})//freshToken 就是当前token过期后到后端再次换取新token的接口
const freshToken axios.create({baseURL: process.env.VUE_APP_BASE_API,timeout: 5000
})
//上面两个 service freshToken 虽然两个都是一样但是有区别的下面会用到// 请求前的参数一般我们的请求头都是在这儿设置
service.interceptors.request.use((config) {let token localStorage.getItem(token)config.headers.Authorization tokenreturn config},(error) {//请求出错的处理}
)//响应拦截器
service.interceptors.response.use((response) {//响应成功后的处理也就是业务请求成功后的处理},//敲黑板在这儿重点async(error) {//首先判断当前token是否过期如果过期就走下面的if//freshToken函数也就是上面定义的换取新token的接口if (error.response.status 401) {let newTookenObj await freshToken({method: get,url: /api/login/getNewToken})//newTookenObj新的token//这儿还有一个就是换取新token之后重新保存。return (error.response.config) //记住这儿一定要返回出去也就是重新走之前请求没走完的业务}}
)export default service