当前位置: 首页 > wzjs >正文

奉贤网站建设上海站霸asp网站免费

奉贤网站建设上海站霸,asp网站免费,网站搜索优化排名,网站建设背景介绍怎么写拦截器的基本概念 拦截器分为两种: 请求拦截器:在请求发送前执行,可用于添加认证头、修改请求参数等。响应拦截器:在响应返回后执行,可用于统一处理错误、解析数据等。 核心方法 1. axios.interceptors.request.use(fu…

拦截器的基本概念

拦截器分为两种:

  1. 请求拦截器:在请求发送前执行,可用于添加认证头、修改请求参数等。
  2. 响应拦截器:在响应返回后执行,可用于统一处理错误、解析数据等。

核心方法

1. axios.interceptors.request.use(fulfilled, rejected)
  • 作用:添加请求拦截器。
  • 参数
    • fulfilled:成功回调,接收 config 对象(包含请求配置),需返回修改后的 config
    • rejected:失败回调,接收错误对象,需返回 Promise.reject(error)
axios.interceptors.request.use((config) => {// 添加认证头config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;return config;},(error) => {console.error('请求错误:', error);return Promise.reject(error);}
);
2. axios.interceptors.response.use(fulfilled, rejected)
  • 作用:添加响应拦截器。
  • 参数
    • fulfilled:成功回调,接收 response 对象,可返回处理后的数据。
    • rejected:失败回调,接收错误对象,可处理 HTTP 错误(如 401、500)。
axios.interceptors.response.use((response) => {// 只返回响应数据return response.data;},(error) => {if (error.response) {// 处理 HTTP 错误console.error(`HTTP 错误 ${error.response.status}`);}return Promise.reject(error);}
);
3. axios.interceptors.request.eject(id)axios.interceptors.response.eject(id)
  • 作用:移除拦截器。
  • 参数
    • id:拦截器的唯一标识,由 use() 方法返回。
// 保存拦截器 ID
const requestInterceptor = axios.interceptors.request.use((config) => {// ...return config;
});// 移除拦截器
axios.interceptors.request.eject(requestInterceptor);

拦截器执行顺序

  • 请求拦截器:后添加的先执行(类似栈结构)。
  • 响应拦截器:先添加的先执行(类似队列结构)。
// 请求拦截器顺序:2 → 1
axios.interceptors.request.use((config) => { console.log('拦截器1'); return config; });
axios.interceptors.request.use((config) => { console.log('拦截器2'); return config; });// 响应拦截器顺序:1 → 2
axios.interceptors.response.use((response) => { console.log('拦截器1'); return response; });
axios.interceptors.response.use((response) => { console.log('拦截器2'); return response; });

常见应用场景

  1. 统一添加认证信息

    axios.interceptors.request.use((config) => {config.headers.Authorization = `Bearer ${token}`;return config;
    });
    
  2. 错误处理

    axios.interceptors.response.use((response) => response,(error) => {if (error.response.status === 401) {// 处理未授权错误(如跳转到登录页)}return Promise.reject(error);}
    );
    
  3. 请求/响应日志记录

    axios.interceptors.request.use((config) => {console.log(`请求: ${config.method} ${config.url}`);return config;
    });
    
  4. 超时处理

    axios.interceptors.request.use((config) => {config.timeout = 5000; // 5秒超时return config;
    });
    

注意事项

  1. 必须返回值

    • fulfilled 回调中必须返回 configresponse,否则请求/响应会被中断。
    • rejected 回调中必须返回 Promise.reject(error)
  2. 异步操作

    • 拦截器中可以进行异步操作(如刷新 token),但需返回 Promise
  3. 全局 vs 实例拦截器

    • 全局拦截器(axios.interceptors)会影响所有请求。
    • 实例拦截器(axios.create().interceptors)仅影响特定实例。

总结

Axios 拦截器通过 use() 添加,通过 eject() 移除,是处理请求和响应的强大工具。合理使用拦截器可以大幅提高代码的可维护性和复用性。

http://www.dtcms.com/wzjs/832643.html

相关文章:

  • 企业现在有必要做网站吗打造对外宣传工作平台网站建设
  • 学校网站建设模板可信网站认证收费吗
  • 做宣传的网站网站建设不一定当地
  • 当地的网站建设做网站申请域名大概花费多少
  • 基于php的电商网站开发做网站个人怎么赚钱吗
  • 网站的目标定位有哪些海尔集团电子网站建设
  • 做计算机模拟ie题模拟网站打不开织梦网站开发兼职
  • 如何建立一个购物网站电子商务网站项目计划
  • 西安营销型网站制作美团网站是用什么做的
  • 在百度网站备案查询上显示未备案是什么意思网络规划设计师教程第二版下载
  • h5页面制作工具哪个好网站如何做优化排名
  • 常州本地招聘网站php 网站 整合 数据库
  • 广东企业网站模板推荐广告设计公司报价单
  • 劳务工程信息平台广州网站优化推广公司
  • 烟台微网站建设智慧团建登录页面
  • 织梦高端大气网站模板西安百度推广运营公司
  • 网站管理员权限设置郑州网站建设搭建公司
  • 链接网站logo上海seo方案
  • 网站首页图片怎么做有关做有机肥的企业网站
  • 金阊网站建设电影网站开发
  • 巴彦淖尔网站制作html5 3d网站
  • 深圳都信建设监理有限公司网站旅游网站如何建设
  • 医学关键词 是哪个网站做电子商务网站建设与管理的论文总结
  • 东莞网站优化公司推荐这是我做的网站吗
  • 哪个网站做恒生指数最安全郑州地区网站建设公司
  • 网站宣传软文医疗网站建设咨询
  • 东阳网站制作环境影响评价工程师
  • 网站首页psd下载wordpress 视差模板
  • 在线营销型网站建设wordpress 设置评论
  • 网站设计如何做策划响应式培训网站模板