axios拦截器阻止发送请求

本文介绍了如何在Vue项目中使用axios的interceptors进行请求拦截,并展示了如何利用CancelToken实现请求的取消。还分享了关于请求重复错误的解决方案和创建CancelToken的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

axios拦截器


import axios from "axios";
import { config } from "vue/types/umd";

const service=axios.create({
    baseURL : "http://xxxxx",
    withCredentials:true,
    headers:{
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
    }
})
service.interceptors.request.use(
    config =>{
        config.headers['token']="123123123"
        return config;
    },
    error =>{
        return Promise.reject(error)
    }
)
service.interceptors.response.use(
    response => {
        const res =response.data
        if(res.code != 200){
            return "请求失败"
        }else {
            return res;
        }
    }
)
export default service;

如何阻止请求

原理:通过axios提供的cancelToken来进行拦截

话不多说,上代码:


// 使用CancelToken来进行拦截
let CancelToken =axios.CancelToken;
let source = CancelToken.source();

export function get(url,param){
    return Promise((reject,reiove)=>{
        service.get(url,param,{
            CancelToken : source.token
        }).then(res=>{
            reject.response(res)
        }).catch((e)=>{
            console.log(e);
        })
    })
}
//拦截的话可以用
source.cancel('想要打印的话')

这里分享一个坑,就是当我们拦截了一个请求后,发现后面同样的接口一样会报错,这时候我们只需要再次创建一个source对象就好了
如下:

let source = CancelToken.source();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值