在做招行银行项目中,客户经常碰到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)
  }
)

早饭君
150 声望5 粉丝

引用和评论

0 条评论