IE 11问题-自动缓存来自GET请求的响应-Reactjs

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE 11问题-自动缓存来自GET请求的响应-Reactjs相关的知识,希望对你有一定的参考价值。

我正在向Web服务发出GET请求以进行AJAX调用。 Internet Explorer正在自动缓存来自GET请求的响应。

  • 我第一次尝试请求就可以了。
  • 数据被修改后,我仍然看到旧结果。
  • 一切似乎在其他浏览器中都能正常工作。

这是代码,

export function fetchReportSet () {
  return function(dispatch) {
       axios.get(`${ROOT_URL}/api/reports/`, {
         headers: {Pragma: 'no-cache'},
         headers: {Authorization:'Token '+ localStorage.getItem('token')}
       })
           .then(response => {
             dispatch({type: FETCH_REPORT , payload: response.data});
           })
           .catch(() => {
           });
  }
}

任何帮助将不胜感激。

答案

[尝试参考this thread在URL中添加时间戳,或参考this article添加Cache-Control:无高速缓存头集。

这样的代码:

import axios from 'axios';
import { cacheAdapterEnhancer } from 'axios-extensions';

const http = axios.create({
    baseURL: '/',
    headers: { 'Cache-Control': 'no-cache' },
    // cache will be enabled by default
    adapter: cacheAdapterEnhancer(axios.defaults.adapter)
});

http.get('/users'); // make real http request
另一答案

this help me

axios.defaults.headers.get ['Pragma'] ='no-cache';

axios.defaults.headers.get ['Cache-Control'] ='无缓存,无存储';

以上是关于IE 11问题-自动缓存来自GET请求的响应-Reactjs的主要内容,如果未能解决你的问题,请参考以下文章

关于IE和edge浏览器中get请求缓存的坑。

在 IE8 中意外缓存 AJAX 结果

RESTDataSource - 如何知道响应来自获取请求还是缓存

ie浏览器下,get请求缓存问题

Ajax---IE缓存问题解决

IE浏览器 get请求缓存问题