在做招行银行项目中,客户经常碰到bug,修改完数据,页面没有更改刷新也不行,只能从新登陆才能更新数据,后来排查下原因原来是客户使用IE浏览器
IE浏览器第一次发请求没有问题,再发送请求时,当参数一样时,浏览器会直接使用缓存数据. 导致页面 还是原来的页面
所以解决方案在axios 请求头 添加时间戳,让每一次请求接口都不让从缓存获取
// request拦截器
service.interceptors.request.use(
config => {
if (config.params) {
config.params.token = getToken()
} else {
config.params = {}
config.params.token = getToken()
}
config.headers['Content-Type'] = config.ContentType ? config.ContentType : 'application/json'
// 时间戳,针对ie浏览器请求一次,不请求获取缓存的bug
if (config.method === 'post' || config.method === 'put') {
config.data = {
...config.data,
t: Date.parse(new Date()) / 1000
}
} else {
config.params = {
t: Date.parse(new Date()) / 1000,
...config.params
}
}
return config
},
error => {
return Promise.reject(error)
}
)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。