axios拦截器里终止请求

24 篇文章 0 订阅
2 篇文章 0 订阅

1、首先我们用一个值用来保存axios的终止函数,放在vuex里,方便全局调用。

const state = {
    cancelAxios: null // 终止axios请求
}
const mutations = {
    setCancelAxios(state, n) {
        state.cancelAxios = n
    }
}
const actions = {
    setCancelAxios({ commit }, n) {
        commit('setCancelAxios', n)
    }
}
export default {
    state,
    mutations,
    actions
}

2、在axios的请求拦截器里。

// 创建axios 实例
var service = axios.create({ timeout: 10000 })

// 请求拦截器:
service.interceptors.request.use(
  config => {
    // 设置cancelToken对象
    config.cancelToken = new axios.CancelToken(function (c) {
      // 将c保存在vuex的cancelAxios中
      store.dispatch('setCancelAxios', c)
    })
    return config
  },
  error => Promise.reject(error)
)

3、页面中终止请求。

this.$store.state.cancelAxios('终止axios请求')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值