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中,并在页面加载时重新添加请求拦截器。

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

相关内容

热门资讯

必备科技!pokermaste... 必备科技!pokermaster破解版(辅助挂)切实真的是有挂(有挂方针辅助方法)1、上手简单,内置...
专业讨论!HH平台挂(辅助挂)... 专业讨论!HH平台挂(辅助挂)总是存在有挂(存在有挂辅助软件)1、下载好脚本下载之后点击打开,先需要...
教程辅助!wepoker辅助透... 教程辅助!wepoker辅助透视软件(辅助挂)果然是有挂(存在有挂辅助插件)1、免费辅助多个强度级别...
一分钟了解!wepoker免费... 一分钟了解!wepoker免费辅助器(辅助挂)果然存在有挂(竟然有挂辅助技巧)1、该软件可以轻松地帮...
总算了解!wepoker底牌透... 总算了解!wepoker底牌透视脚本(辅助挂)竟然是有挂(确实有挂辅助攻略)1、辅助软件下载优化,底...
让我来分享经验!wpk辅助哪里... 让我来分享经验!wpk辅助哪里买(辅助挂)一贯存在有挂(证实有挂辅助技巧)1、模拟器是什么优化,俱乐...
总算明白!wejoker开挂(... 总算明白!wejoker开挂(辅助挂)真是是有挂(有挂详细辅助教程)1)有没有挂:进一步探索有辅助吗...
信息共享!pokemmo手机版... 信息共享!pokemmo手机版修改器(辅助挂)竟然存在有挂(有挂教程辅助脚本)1、下载好透视辅助下载...
玩家必备科技!wepoker有... 玩家必备科技!wepoker有辅助插件吗(辅助挂)都是存在有挂(竟然有挂辅助软件)1、免费脚本咨询教...
最新研发!德普之星辅助工具如何... 最新研发!德普之星辅助工具如何设置(辅助挂)竟然是有挂(确实有挂辅助技巧)1、用户打开应用后不用登录...