zoukankan      html  css  js  c++  java
  • http axios 请求封装

    import axios from 'axios'
    // import store from '@/store/index.js'
    import baseURL from './baseURL'
    import qs from 'query-string';
    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 => {
            console.log(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) {
        return new Promise((resolve, reject) => {
            instance
                .get(url, options)
                .then(response => {
                    if (response) {
                        resolve(response.data)
                    } else {
                        Message.error({
                            message: response.message
                        })
                        reject(response.message)
                    }
                })
                .catch(e => {
                    console.log(e)
                })
        })
    }
    
    http.post = function(url, data, options) {
        return new Promise((resolve, reject) => {
            instance
                .post(url, qs.stringify(data), options)
                .then(response => {
                    if (response) {
                        resolve(response.data)
                    } else {
                        Message.error({
                            message: response.message
                        })
                        reject(response.message)
                    }
                })
                .catch(e => {
                    console.log(e)
                })
        })
    }
    
    export default http
    
  • 相关阅读:
    【卡西欧Fx-5800p系列教程】Pol()和Rec()正反算妙用
    《关于2013年全国测量人员最低工资标准的通知》
    易语言测量编程工具教程篇
    价值300元的《测量宝典》
    业界常用的和不常用cad快捷键
    角度格式批量转化弧度—易语言
    Web.config中 mode="RemoteOnly" 跟mode="On" 区别
    Oracle 批量修改某个用户下表的表空间
    JQuery radio单选框应用
    RadioButtonFor控件
  • 原文地址:https://www.cnblogs.com/wp980327/p/14429954.html
Copyright © 2011-2022 走看看