• axios 拦截器处理通用封装


     aioxs 通用封装,比如在登录的时候,若登录给后面接口,多传个token。有助安全性。 对于 异常处理。 拦截器 ,请求前,得到资源后。

     

     aioxs封装

    import axios from 'axios'
    import store from '@/store/index.js'
    import baseURL from './baseUrl'
    import { Message } from 'element-ui'
    const http = {}
    
    var instance = axios.create({
        timeout: 5000,
        baseURL
    })
    
    // 添加请求拦截器
    instance.interceptors.request.use(
        function(config) {
            // 请求头添加token
            if (store.state.UserToken) {
                config.headers.Authorization = store.state.UserToken
            }
            return config
        },
        function(error) {
            return Promise.reject(error)
        }
    )
    
    // 响应拦截器即异常处理
    instance.interceptors.response.use(
        response => {
            return response.data
        },
        err => {
            if (err && err.response) {
            //状态的异常处理 switch (err.response.status) { case 400: err.message = '请求出错' break case 401: Message.warning({ message: '授权失败,请重新登录' }) store.commit('LOGIN_OUT') setTimeout(() => { window.location.reload() }, 1000) return case 403: err.message = '拒绝访问' break case 404: err.message = '请求错误,未找到该资源' break case 500: err.message = '服务器端出错' break } } else { err.message = '连接服务器失败' } Message.error({ message: err.message }) return Promise.reject(err.response) } ) http.get = function(url, options) { // get请求封装 return new Promise((resolve, reject) => { instance .get(url, options) .then(response => { if (response.code === 0) { resolve(response.data) } else { Message.error({ message: response.message }) reject(response.message) } }) .catch(e => { console.log(e) }) }) } http.post = function(url, data, options) { //post请求封装 return new Promise((resolve, reject) => { instance .post(url, data, options) .then(response => { if (response.code === 0) { resolve(response.data) } else { Message.error({ message: response.message }) reject(response.message) } }) .catch(e => { console.log(e) }) }) } export default http

      

    const baseUrl = 'http://localhost:8080'
    export default baseUrl
    

      

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    import state from './state'
    import getters from './getters'
    import modules from './modules'
    import actions from './actions'
    import mutations from './mutations'
    
    Vue.use(Vuex)
    
    export default new Vuex.Store({
        state,
        getters,
        mutations,
        actions,
        modules
    })
    

      

    项目地址  https://github.com/linrunzheng/vue-permission-control

    基于vue, vue-router, vuex进行权限控制

  • 相关阅读:
    windows根据指定编码启动jar包
    Ioc/DI和Aop(2)
    SpringIOC和AOP原理 设计模式(3)
    nacos安装与基础配置
    jvm内存参数解析
    springboot集成多数据源
    linux常见命令
    idea常见问题
    GSP
    GSP
  • 原文地址:https://www.cnblogs.com/liliuyu/p/11842318.html
Copyright © 2020-2023  润新知