• vue+axios 前端实现登录拦截(http拦截)


     

    拦截器

    首先我们要明白设置拦截器的目的是什么,当我们需要统一处理http请求和响应时我们通过设置拦截器处理方便很多.

    这个项目我引入了element ui框架,所以我是结合element中loading和message组件来处理的.我们可以单独建立一个http的js文件处理axios,再到main.js中引入.

    /**
     * http配置
     */
    // 引入axios以及element ui中的loading和message组件
    import axios from 'axios'
    import { getSession } from '@/utils'
    import { Spin, Message } from 'iview'
    
    axios.prototype.$spin = Spin;
    // 超时时间
    axios.defaults.timeout = 5000
    // http请求拦截器
    axios.interceptors.request.use(config => {
        Spin.show()
        config.headers['authorization'] = getSession('authorization') === null ? "" : getSession('authorization')
        return config
    }, error => {
        Spin.hide()
        Message.error({
            content: '加载超时'
        })
        return Promise.reject(error)
    })
    // http响应拦截器
    axios.interceptors.response.use(data => {// 响应成功关闭loading
        Spin.hide()
        return data
    }, error => {
        Spin.hide()
        switch (error.response.status) {
            case 401:
                Message.error({
                    content: '没有权限'
                });
                break
            case 404:
                Message.error({
                    content: '页面丢失了'
                });
                break
            case 500:
                Message.error({
                    content: '服务器请求超时'
                });
                break
            default:
                Message.error({
                    content: '未知错误!'
                });
        }
        return Promise.reject(error)
    })
    
    export default axios  
    获取  authorization  的函数
    export function getSession(key) {
        return window.sessionStorage.getItem(key)
    }
    
    export function setSession(key, val) {
        window.sessionStorage.setItem(key, val)
    }
  • 相关阅读:
    linux 下高精度时间
    pstack
    linux 调试常用命令
    定位 UNIX 上常见问题的经验总结
    在 POSIX 线程编程中避免内存泄漏
    ulimit
    设计模式之迭代器模式(PHP实现)
    设计模式之责任链模式(php实现)
    设计模式之代理模式(php实现)
    设计模式之享元模式(PHP实现)
  • 原文地址:https://www.cnblogs.com/p-123/p/11377739.html
Copyright © 2020-2023  润新知