Axios请求拦截器在浏览器刷新时不起作用。
创始人
2024-09-29 00:01:33
0

要解决Axios请求拦截器在浏览器刷新时不起作用的问题,可以在Axios实例中使用sessionStoragelocalStorage来存储拦截器所需的信息,并在浏览器刷新时重新添加拦截器。

以下是一个示例代码,展示了如何使用sessionStorage来存储拦截器的token,并在浏览器刷新时重新添加拦截器:

import axios from 'axios';

// 创建一个Axios实例
const instance = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 5000,
});

// 添加请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 从sessionStorage中获取token
    const token = sessionStorage.getItem('token');
    // 如果token存在,则在请求头中添加Authorization字段
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 添加响应拦截器
instance.interceptors.response.use(
  (response) => {
    // 处理响应数据
    return response;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 在浏览器刷新时重新添加请求拦截器
window.addEventListener('beforeunload', () => {
  // 从sessionStorage中获取token
  const token = sessionStorage.getItem('token');
  if (token) {
    // 存储token到localStorage
    localStorage.setItem('token', token);
  }
});

// 在页面加载时检查是否存在token,并重新添加请求拦截器
window.addEventListener('DOMContentLoaded', () => {
  // 从localStorage中获取token
  const token = localStorage.getItem('token');
  if (token) {
    // 移除localStorage中的token
    localStorage.removeItem('token');
    // 存储token到sessionStorage
    sessionStorage.setItem('token', token);
    // 添加请求拦截器
    instance.interceptors.request.use(
      (config) => {
        // 在请求头中添加Authorization字段
        config.headers.Authorization = `Bearer ${token}`;
        return config;
      },
      (error) => {
        return Promise.reject(error);
      }
    );
  }
});

export default instance;

在上面的代码中,我们创建了一个Axios实例instance,并在请求拦截器中使用sessionStorage来存储token。在浏览器刷新时,我们将token从sessionStorage存储到localStorage中,并在页面加载时重新添加请求拦截器。

请注意,这只是一个示例代码,具体的实现可能因项目的需求而有所不同。在实际应用中,你可能需要根据实际情况进行适当的调整。

相关内容

热门资讯

透视苹果版本!购买wepoke... 透视苹果版本!购买wepoker模拟器(透视)开挂辅助app(其实有挂)-哔哩哔哩所有人都在同一条线...
透视最新!悦扑克脚本,拱趴大菠... 透视最新!悦扑克脚本,拱趴大菠萝辅助方法,模板教程(原来是有挂)-哔哩哔哩1、拱趴大菠萝辅助方法系统...
透视德州版!wepoker私人... 透视德州版!wepoker私人局俱乐部(透视)开挂辅助器(确实真的有挂)-哔哩哔哩1、下载好wepo...
透视教学!wepoker透视脚... 透视教学!wepoker透视脚本免费app,wpk俱乐部辅助器,举措教程(竟然有挂)-哔哩哔哩1、上...
透视辅助挂!aapoker插件... 透视辅助挂!aapoker插件(透视)开挂辅助攻略(都是是真的挂)-哔哩哔哩运aapoker插件辅助...
透视黑科技!hhpoker怎么... 透视黑科技!hhpoker怎么防辅助,wepokerplus到底是挂了吗,资料教程(好像是有挂)-哔...
透视开挂!wpk可以辅助吗(透... 透视开挂!wpk可以辅助吗(透视)开挂辅助软件(切实有挂)-哔哩哔哩1)wpk可以辅助吗辅助挂:进一...
透视透视挂!德普之星透视辅助软... 透视透视挂!德普之星透视辅助软件是真的吗,newpoker怎么安装脚本,资料教程(其实真的是有挂)-...
透视中牌率!wpk辅助软件(透... 透视中牌率!wpk辅助软件(透视)开挂辅助神器(其实存在有挂)-哔哩哔哩1、wpk辅助软件透视辅助简...
透视模拟器!wepoker如何... 透视模拟器!wepoker如何设置透视,佛手在线大菠萝智能辅助器,要领教程(总是真的是有挂)-哔哩哔...