在没风的地方找太阳  在你冷的地方做暖阳 人事纷纷  你总太天真  往后的余生  我只要你 往后余生  风雪是你  平淡是你  清贫也是你 荣华是你  心底温柔是你  目光所致  也是你 想带你去看晴空万里  想大声告诉你我为你着迷 往事匆匆  你总会被感动  往后的余生  我只要你 往后余生  冬雪是你  春花是你  夏雨也是你 秋黄是你  四季冷暖是你  目光所致  也是你 往后余生  风雪是你  平淡是你  清贫也是你 荣华是你  心底温柔是你  目光所致  也是你
jQuery火箭图标返回顶部代码 - 站长素材

vue项目中封装axios

// 配置API接口地址
import { message } from "ant-design-vue";
var root = 'http://xxx.xxx.xxx.xxx:8080/v1/'
// var root = 'http://xxx.xxx.xxx.xxx:8080/v1/'
// 引用axios
var axios = require('axios')
if(window.localStorage.getItem('token')){
    axios.defaults.headers.common['Authorization'] = 'Bearer '+window.localStorage.getItem('token');
}
// 自定义判断元素类型JS
function toType (obj) {
    return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
}
// 参数过滤函数
function filterNull (o) {
    for (var key in o) {
        if (o[key] === null) {
            delete o[key]
        }
        if (toType(o[key]) === 'string') {
            o[key] = o[key].trim()
        } else if (toType(o[key]) === 'object') {
            o[key] = filterNull(o[key])
        } else if (toType(o[key]) === 'array') {
            o[key] = filterNull(o[key])
        }
    }
    return o
}
 
/*
  接口处理函数
  这个函数每个项目都是不一样的,我现在调整的是适用于
  https://cnodejs.org/api/v1 的接口,如果是其他接口
  需要根据接口的参数进行调整。
  主要是,不同的接口的成功标识和失败提示是不一致的。
  另外,不同的项目的处理方法也是不一致的,这里出错就是简单的alert
*/
function apiAxios (method, url, params, success, failure) {
    if (params) {
        params = filterNull(params)
    }
    axios({
        method: method,
        url: url,
        data: method === 'POST' || method === 'PUT' ? params : null,
        params: method === 'GET' || method === 'DELETE' ? params : null,
        baseURL: root,
        withCredentials: false
    })
    .then(function (res) {
    if (res.data.message === "成功") {
        if (success) {
            success(res.data)
        }
    } else {
        message.error(res.data.message)
        // setTimeout(() => {
        //     window.location.href = 'http://' + window.location.host + '/login'
        //     window.localStorage.clear();  
        // }, 1500);
        
        // if (failure) {
        //     // failure(res.data)
            
        //     // console.log(res.data)
        // } else {
        //     window.alert('error: ' + JSON.stringify(res.data))
        // }
    }
    })
    .catch(function (err) {
        // console.log(err.response)
        if(err){
            if(err.response){
                if(err.response.status){
                    message.error('服务器溜走了')
                }
            } else if(err.message === 'Network Error'){
                message.error('登录失效请重新登录')
                setTimeout(() => {
                    window.location.href = 'http://' + window.location.host + '/login'
                    window.localStorage.clear();  
                }, 1500);
            }
        }
        
    })
}
 
// 返回在vue模板中的调用接口
export default {
    get: function (url, params, success, failure) {
        return apiAxios('GET', url, params, success, failure)
    },
    post: function (url, params, success, failure) {
        return apiAxios('POST', url, params, success, failure)
    },
    put: function (url, params, success, failure) {
        return apiAxios('PUT', url, params, success, failure)
    },
    delete: function (url, params, success, failure) {
        return apiAxios('DELETE', url, params, success, failure)
    },
    axios:axios
}

 

posted @ 2020-05-07 21:26  艺术诗人  阅读(386)  评论(0编辑  收藏  举报