vue ie浏览器 页面缓存 不请求接口

Posted 早饭君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue ie浏览器 页面缓存 不请求接口相关的知识,希望对你有一定的参考价值。

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

以上是关于vue ie浏览器 页面缓存 不请求接口的主要内容,如果未能解决你的问题,请参考以下文章

IE浏览器下使用AJAX登陆接口请求缓存与登陆不了的问题解决

在Vue中如何缓存页面

vue axios 跨域请求在ie浏览器 报错 Access-Control-Allow-Headers 列表中不存在请求标头 authorization.

get请求在ie浏览器下有缓存

关于IE浏览器的缓存问题

IE浏览器下AJAX缓存问题导致数据不更新的解决办法