vue项目在IE浏览器下操作接口数据改变,页面不改变的缓存问题

1、在 IE11 中,如果 GET 请求相同的 URL ,浏览器默认会使用之前的缓存数据,而不是重新请求接口,导致页面数据没有更新

解决方法:在拦截器做处理,请求前增加时间戳,使每个操作都是独立唯一的,这就保证了每一次请求时URL都不同,就成功解决了IE浏览器的缓存问题

代码如下:

const service = axios.create({

  baseURL: process.env.BASE_API,

  timeout: 5 * 1000 // request timeout

})

axios.defaults.headers.delete['Content-Type'] = 'application/json;charset=UTF-8';

// request interceptor 请求拦截器

service.interceptors.request.use(

  config => {

    if (store.getters.token) {

      config.headers['x-Authorization'] = getToken()

      // 时间戳,针对ie浏览器请求一次,不请求获取缓存的bug

      var timeArs = parseInt(new Date().getTime() / 1000) + ''

      if (config.method === 'post' || config.method === 'put') {

        config.data = {

          ...config.data,

          _t: timeArs

        }

      } else {

        /* get 接口 在 IE11 中,如果 GET 请求相同的 URL ,浏览器默认会使用之前的缓存数据,而不是重新请求接口,导致页面数据没有更新

       */

        config.params = {

          _t: timeArs,

          ...config.params

        }

      }

    }

    return config

  }, errorHandler)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值