VUE3 请求拦截器 响应拦截器

这篇具有很好参考价值的文章主要介绍了VUE3 请求拦截器 响应拦截器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,导入axios  (使用axios进行接口的请求,页面发送http请求,很多情况我们要对请求和其响应进行特定的处理,如:判断token,设置请求头。如果请求数非常多,单独对每一个请求进行处理会变得非常麻烦,程序的优雅性也会大打折扣。所以axios为开发者提供了这样一个API:拦截器。)

2.引入接口路径

3.书写拦截器

request.ts

import { ElNotification } from 'element-plus'
import type {AxiosRequestConfig, AxiosResponse} from 'axios';
import axios from 'axios';
import { cancelTokenArr } from '../utils';  
export interface HttpResponse<T = unknown> {  //ts校验
  status: number;
  msg: string;
  code: number; 
  data: T;
}

const  requests = axios.create({
  baseURL: `*********`,   //引入接口
  timeout: 20000,     
});

// 请求拦截器
requests.interceptors.request.use(
  (config: AxiosRequestConfig) => {
    const at = window.localStorage.getItem('user_token');  //储存接口
    // 存储需要中断的接口
    config['cancelToken'] = new axios.CancelToken(function executor(cancel) {
      cancelTokenArr.functionArr = cancel;
    });        //CancelToken防止路由多次发送请求
    // 此处对请求进行配置
    if (at) {
      config.headers!['UserToken'] = at;
    }
    return config;
  },
  error => {
    cancelTokenArr.functionArr = null;
    return Promise.reject(error);
  },
);

// 响应拦截器
requests.interceptors.response.use(
  (response: AxiosResponse<HttpResponse>) => {
    cancelTokenArr.functionArr = null;
    const res = response;
    return res;
  },
  error => {
    cancelTokenArr.functionArr = null;
    if(error.name !== 'CanceledError'){
        ElNotification.error('Something is wrong!');
    }
    return Promise.reject(error);
  },
);

export default requests;

utils.ts文章来源地址https://www.toymoban.com/news/detail-594472.html

export const cancelTokenArr: any = {
  functionArr: null,
};

到了这里,关于VUE3 请求拦截器 响应拦截器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue全家桶进阶之路46:Vue3 Axios拦截器

    在Vue.js 3中,使用Axios与Vue.js 2.x中类似,但是需要进行一些修改和更新,下面是Vue.js 3中Axios的定义和使用方式: 首先,你需要安装Axios和Vue.js 3.x,可以使用npm或yarn等包管理工具安装: 然后,在你的Vue.js 3应用程序中,你可以使用以下代码来导入和使用Axios: 上面的代码使用

    2023年04月20日
    浏览(53)
  • vue+axios——创建多个实例共用请求拦截器和响应拦截器(403错误信息不提示bug解决)——基础积累

    创建多个实例共用请求拦截器和响应拦截器:使用的是函数的继承,也就是 call() 方法,这个方法第一个参数就是 this ,后面的参数可以是一个也可以是多个。最后一定要记得要 return 出去,否则接口是拿不到数据的。 上面两个文件合并后的处理如下: 在 main.js 中添加如下内容

    2024年02月10日
    浏览(50)
  • vue全家桶进阶之路46:Vue3 Axios拦截器和globalProperties全局设置

    在Vue.js 3中,使用Axios与Vue.js 2.x中类似,但是需要进行一些修改和更新,下面是Vue.js 3中Axios的定义和使用方式: 首先,你需要安装Axios和Vue.js 3.x,可以使用npm或yarn等包管理工具安装: 然后,在你的Vue.js 3应用程序中,你可以使用以下代码来导入和使用Axios: 上面的代码使用

    2023年04月20日
    浏览(51)
  • vue全家桶进阶之路47:Vue3 Axios拦截器封装成request文件

    可以将Axios拦截器封装成一个单独的request文件,以便在整个应用程序中重复使用。 以下是一个示例,展示如何将Axios拦截器封装成一个request文件: 1、创建一个名为request.js的新文件,并导入Axios: 2、创建一个名为request的函数,并将其导出: 这将创建一个名为request的函数,

    2023年04月21日
    浏览(53)
  • Axios基本使用,为学习后续的Vue服务【发送请求+并发请求+前端拦截器】

    目录 1、项目中引入Axios 2、使用Axios发送请求 2.1、例:发送GET请求 2.2、例:发送POST请求 3、axios并发请求 4、拦截器 注:个人学习笔记,因自己学过后端,所以有关后端的代码,我在这里就不展示了~ 不了解后端的宝子,也不会耽误学习,因为公司里会有写好的接口文档,直

    2024年02月02日
    浏览(53)
  • 微信小程序封装request请求,包含请求拦截器,响应拦截器和请求重试功能

    在发送请求之前,先判断用户是否有token,没有就执行登陆请求,将token保存,然后再执行原来请求; 拥有token,就直接执行请求;但是用户的这个token可能是过期的,如果执行请求发现用户登陆过期,就统一返回40001,然后对40001的响应统一处理,执行登陆请求,再执行原来请

    2024年02月13日
    浏览(49)
  • axios 请求和响应拦截器

    1. 创建实例 使用 axios.create() 使用自定义配置创建一个 axios 实例。 2. 拦截器 在请求或响应被 then 或者 catch 处理前拦截他们,拦截分为请求拦截和响应拦截。 2.1 request 拦截器,全局添加市场信息 removeMarketCode 是否移除市场信息,默认不移除; 根据上述代码可以看到,市场信

    2024年02月09日
    浏览(40)
  • Feign请求及响应拦截器

    feign请求拦截,处理head、param、body参数,附加解密定制化处理,也可以使用原生解码器; feign响应拦截,处理head、param、body参数,附加解密定制化处理,也可以使用原生解码器; 附件加解密工具(支持格式化rn、rt)等格式化代码加解密,五年验证品质保证

    2024年02月11日
    浏览(47)
  • Vue axios 拦截器

    正常情况下打开浏览器前端页面向后端发起请求使用的是axios,无论是原生的axios还是自己封装的axios都看成是axios。发起请求之后后端去数据库里面拿数据,然后返回给前端。 发起请求的地方是axios,并且你能够封装这个axios,那么你就可以添加拦截器。 请求拦截器就是你在

    2024年02月04日
    浏览(41)
  • axios 中使用请求响应拦截器

    axios 简介: Axios 是一个 基于 promise 网络请求库 ,作用于 node.js 和浏览器 中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在 服务端它使用原生 node.js http 模块 , 而在 客户端 (浏览端) 则使用 XMLHttpRequests 。 axios的特性: 从浏览器创建 XMLHttpRequests 从 node.js 创

    2024年02月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包