javascript - 如何给每个请求添加拦截器,让ie不缓存请求

标签 javascript reactjs internet-explorer axios

Internet Explorer 缓存 http 请求。我不想手动向每个单独的函数添加 header ,而是想做这样的事情

axios.interceptors.request.use((config): AxiosRequestConfig => {
return addNoCachingHeader(config);
  });

const addNoCachingHeader = (config: AxiosRequestConfig): AxiosRequestConfig => {
  return { ...config, headers: { ...config.headers, Pragma: "no-cache"} };
};

是否有一种简单的方法可以阻止 IE 缓存请求,而无需返回整个应用程序并向每个单独的请求添加 header ?

最佳答案

我认为在这里使用通用客户端方法会更好。

const client = axios.create({
  baseURL,
  timeout: 5000,
  responseType: 'json',
  headers: { Pragma: "no-cache" },
});

并在其他地方使用导入客户端并调用client.getclient.post

如果您想在某个时候覆盖 header ,请将其设为函数

const client = (headers) => axios.create({
  baseURL,
  timeout: 5000,
  responseType: 'json',
  headers,
});

并用作client({ Pragma: 'no-cache' }).get(...)

关于javascript - 如何给每个请求添加拦截器,让ie不缓存请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50456542/

相关文章:

javascript - 在 React 中禁用 onClick 按钮,但仅对 Index 中的一个元素禁用

javascript - jQuery 不能在 IE 中工作,但可以在其他浏览器中工作

javascript - Internet Explorer - 语法错误 - AngularJS

javascript - 带有 Firebase 数据的 Angular 应用程序 : why am I seeing data from the previous page?

javascript - 动态创建的样式元素

javascript - JQuery 收集一组元素,打开每个元素,然后将所有元素包装在新元素中

reactjs - Gatsby:从内容字段创建页面

reactjs - 使用 useRef(uuid()) 的目的是什么?

javascript - Internet Explorer 和 <select> 标签问题

javascript - 如何将 JavaScript 写入单独的窗口?