zoukankan      html  css  js  c++  java
  • vue中 请求拦截 响应拦截设置

        第一,在项目的src中新建http.js文件,将以下代码复制进去

    import axios from 'axios'
    import { Message, Loading } from 'element-ui';
    import router from './router'
    
    let loading        //定义loading变量
    
    function startLoading() {    //使用Element loading-start 方法
        loading = Loading.service({
            lock: true,
            text: '加载中...',
            background: 'rgba(0, 0, 0, 0.7)'
        })
    }
    function endLoading() {    //使用Element loading-close 方法
        loading.close()
    }
    
    // 请求拦截  设置统一header
    axios.interceptors.request.use(config => {
        // 加载
        startLoading()
        if (localStorage.eleToken)
            config.headers.Authorization = localStorage.eleToken
        return config
    }, error => {
        return Promise.reject(error)
    })
    
    // 响应拦截  401 token过期处理
    axios.interceptors.response.use(response => {
        endLoading()
        return response
    }, error => {
        // 错误提醒
        endLoading()
        Message.error(error.response.data)
    
        const { status } = error.response
        if (status == 401) {
            Message.error('token值无效,请重新登录')
            // 清除token
            localStorage.removeItem('eleToken')
    
            // 页面跳转
            router.push('/login')
        }
    
        return Promise.reject(error)
    })
    
    export default axios
    

      第二,在main.js中引入

  • 相关阅读:
    算法总结7—多维缩放
    算法总结3—神经网络
    算法总结9—优化
    算法总结8—非负矩阵因式分解
    R语言系列—区间估计
    算法总结2—决策树分类器
    算法总结5&6k最近邻与聚类
    统计,逻辑与智能
    算法总结4—支持向量机
    R语言系列—回归分析
  • 原文地址:https://www.cnblogs.com/WangXinPeng/p/11274070.html
Copyright © 2011-2022 走看看